绑定到UserControls的ObservableCollection

时间:2010-05-22 19:37:40

标签: silverlight data-binding xaml

简单的Silverlight问题:我有一个ObservableCollection< MyObject>在我的viewmodel中。每个MyObject都有一个Label属性。如果我将ListBox绑定到集合并将DisplayMemberPath设置为Label,或将ItemTemplate设置为将Text属性绑定到Label的TextBlock,则所有工作都按预期工作。

如果我更改MyObject以使其从UserControl派生,则Label文本不再显示在ListBox中;每个项目只显示为几个像素高的空白条带。为什么是这样?很明显,我在这里想到的是如何渲染不同的东西。

2 个答案:

答案 0 :(得分:2)

ListBox确定其ItemsSource中的项集已经是UIElement个实例,因此决定直接将这些元素用作它创建的ListBoxItem元素的内容。

答案 1 :(得分:1)

您可以通过创建自己的ItemsControl来更改此行为,重写IsItemItsOwnContainerOverride,如this post的答案中所述。