Я создал пользовательскую панель (MyCustomControl), которая может содержать другие элементы управления и настраиваться с помощью свойств зависимостей. Внутри другого пользовательского элемента управления (MyUserControl) у меня есть несколько экземпляров MyCustomControl, настроенных в XAML.Использование списка <UIElement> как ItemsSource для элемента ItemsControl заставляет DataTemplate не применяться
Вне контроля пользователя, я пытаюсь привязать элемент ItemsControl (myItemsControl) к списку MyCustomControls, которые существуют в MyUserControl во время выполнения. Поэтому я выставил список из MyUserControl через свойство зависимостей.
Я испытываю неожиданное поведение в этой стратегии. Я бы хотел, чтобы ItemsControl взял список и использовал каждый экземпляр управления внутри как объект со значениями данных, которые могут заполнить DataTemplate ItemsControl. Однако это не так. Вместо этого он в основном игнорирует DataTemplate в целом и просто перерисовывает все элементы управления, которые находятся в списке/ItemsSource.
Таким образом, если я использую список элементов управления как ItemsSource для ItemsControl, он не использует их в качестве объектов данных, а вместо этого отображает их как экземпляры управления.
Удивительно, но если я попытаюсь сделать то же самое, но использовать ListBox вместо ItemControl, привязка данных работает, как ожидалось. Я не хочу использовать ListBox по другим причинам. Кто-нибудь знает, какая разница между ListBox и ItemsControl, которая влияет на это поведение?
Edit: Я нашел другой пользователь, который имел тот же вопрос, не перечисленного разрешения здесь: msdn social forum post
См. Ответ на этот вопрос [http://stackoverflow.com/questions/661831/wpf-itemtemplate-not-acting-as-expected) – Arcturus