如何使我的WPF UserControl与CompositeCollection一起使用

时间:2009-06-28 12:11:04

标签: wpf wpf-controls

我有一个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?

2 个答案:

答案 0 :(得分:0)

我认为您获得的是对象的ToString方法,默认情况下返回该类型的名称。

尝试覆盖ToString并返回列表中要查看的值。

答案 1 :(得分:0)

正确的答案是创建一个扩展ItemsControl的类。在设计控件时不能使用任何XAML,但它确实为您提供了支持CollectionContainers的特殊ItemsSource属性。应该在ContentTemplate属性中定义控件的视图。