CompositeCollections组合集合绑定

实现效果:

clipboard.png

clipboard.png

实践:

  1. CompositeCollection下的CollectionContainer

关键代码:

<ListBox Name="myListBox" Height="300" Width="200" Background="White">
    <ListBox.ItemsSource>
        <CompositeCollection>
            <CollectionContainer
    Collection="{Binding Source={StaticResource GreekGodsData}}" />
            <CollectionContainer
    Collection="{Binding Source={StaticResource GreekHeroesData}}" />
            <ListBoxItem Foreground="Red">Other Listbox Item 1</ListBoxItem>
            <ListBoxItem Foreground="Red">Other Listbox Item 2</ListBoxItem>
        </CompositeCollection>
    </ListBox.ItemsSource>
</ListBox>

数据模板:

<DataTemplate DataType="{x:Type c:GreekGod}">
  <TextBlock Text="{Binding Path=Name}" Foreground="Gold"/>
</DataTemplate>
<DataTemplate DataType="Hero">
  <TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/>
</DataTemplate>

扩展:

  1. CompositeCollection:启用要以单个列表形式显示的多个集合和项。
  2. CompositeCollection 可包括项(如字符串、对象、XML 节点、元素)和其他集合。
  3. ItemsControl 使用 CompositeCollection 中的数据,根据它的 ItemTemplate 来生成其内容。
  4. 保存要用在 CompositeCollection 中的现有集合结构,如 ObservableCollection<T> 或 DataSet。

李志玮
22 声望34 粉丝

求索~~


引用和评论

0 条评论