Привязка к ObservableCollection пользовательских элементов управления - PullRequest
1 голос
/ 22 мая 2010

Простой вопрос Silverlight: у меня есть ObservableCollection в моей модели представления. Каждый MyObject имеет свойство Label. Если я связываю ListBox с коллекцией и устанавливаю для DisplayMemberPath значение Label, или для ItemTemplate устанавливается значение TextBlock, которое связывает свойство Text с меткой, все работает должным образом.

Если я изменю MyObject, чтобы он производился от UserControl, текст Label больше не будет отображаться в ListBox; каждый элемент отображается в виде пустой полосы высотой в несколько пикселей. Почему это? Здесь явно что-то упускается из-за того, как отображаются разные вещи.

Ответы [ 2 ]

2 голосов
/ 23 мая 2010

ListBox определяет, что набор элементов в его ItemsSource уже является UIElement экземплярами, и поэтому решает использовать эти элементы непосредственно в качестве содержимого ListBoxItem элементов, которые он создает.

1 голос
/ 25 мая 2010

Вы можете изменить это поведение, создав свой собственный ItemsControl, переопределив IsItemItsOwnContainerOverride, как объяснено в ответе на в этом посте .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...