我有一个wpf用户控件,它公开了一个IEnumerable ItemsSource DependencyProperty。我将此属性绑定到UserControl中的ListBox控件。
我想知道在给出CompositeCollection时如何使用户控件工作。目前我正在使用我的控件:
<my:uc>
<my:uc.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{My Binding}"></CollectionContainer>
<CollectionContainer Collection="{My Binding}"></CollectionContainer>
</CompositeCollection>
</my:uc.ItemsSource>
</my:uc>
我希望这能在列表框中显示这些CollectionContainers的内容,但目前它没有通过容器枚举。我的列表框显示的唯一项目是两个“System.Data.CollectionContainer”项目。
并[b]编辑:[/ B] XAML设计器告诉我“Property'ParttersSource'不支持'CompositeCollection'类型的值。”我认为这是我的问题..但我如何让它“支持”CompositeCollection?
答案 0 :(得分:0)
我认为您获得的是对象的ToString方法,默认情况下返回该类型的名称。
尝试覆盖ToString并返回列表中要查看的值。
答案 1 :(得分:0)
正确的答案是创建一个扩展ItemsControl的类。在设计控件时不能使用任何XAML,但它确实为您提供了支持CollectionContainers的特殊ItemsSource属性。应该在ContentTemplate属性中定义控件的视图。