Я бы написал поведение интерактивности (унаследованное от System.Interactivity.Behavior), которое принимает xml DataSource (например, свойство зависимостей XElement) и добавляет ListBoxItem в связанный ListBox.
Вам придется написать код один раз, но после того, как вы можете присоединить поведение исключительно в XAML.
Если вам нужен более общий подход, чем простое преобразование в коде, вам нужно реализовать собственного провайдера, см. это действительно подробное сообщение в блоге на эту тему ...