简单的Silverlight问题:我有一个ObservableCollection< MyObject>在我的viewmodel中。每个MyObject都有一个Label属性。如果我将ListBox绑定到集合并将DisplayMemberPath设置为Label,或将ItemTemplate设置为将Text属性绑定到Label的TextBlock,则所有工作都按预期工作。
如果我更改MyObject以使其从UserControl派生,则Label文本不再显示在ListBox中;每个项目只显示为几个像素高的空白条带。为什么是这样?很明显,我在这里想到的是如何渲染不同的东西。
答案 0 :(得分:2)
ListBox确定其ItemsSource
中的项集已经是UIElement
个实例,因此决定直接将这些元素用作它创建的ListBoxItem
元素的内容。
答案 1 :(得分:1)
您可以通过创建自己的ItemsControl来更改此行为,重写IsItemItsOwnContainerOverride,如this post的答案中所述。