Я создал пользовательскую панель (MyCustomControl), которая может содержать другие элементы управления и настраиваться через свойства зависимостей. Внутри другого пользовательского элемента управления (MyUserControl) у меня есть несколько экземпляров MyCustomControl, настроенных в XAML.
За пределами пользовательского элемента управления я пытаюсь привязать ItemsControl (myItemsControl) к списку MyCustomControl, которые существуют в MyUserControl во время выполнения. Поэтому я выставил список из MyUserControl через свойство зависимостей.
Я испытываю неожиданное поведение от этой стратегии. Я хотел бы, чтобы ItemsControl взял List и использовал каждый экземпляр элемента управления как объект со значениями данных, которые могут заполнять DataTemplate ItemsControl. Однако этого не происходит. Вместо этого он полностью игнорирует DataTemplate и просто повторно отображает все элементы управления, которые находятся в списке / ItemsSource.
В итоге, если я использую список элементов управления в качестве ItemsSource для ItemsControl, он не использует их в качестве объектов данных, а вместо этого отображает их как экземпляры элементов управления.
Удивительно, но если я пытаюсь сделать то же самое, но использую ListBox вместо ItemsControl, привязка данных работает, как и ожидалось. Я не хочу использовать ListBox по другим причинам. Кто-нибудь знает, в чем разница между ListBox и ItemsControl, который влияет на это поведение?
Редактировать: Я нашел другого пользователя, у которого возникла та же проблема без разрешения в списке: msdn сообщение на форуме