案例地址:GitHub - microsoft/WPF-Samples: Repository for WPF related samples
一、运行界面
二、案例功能描述
知识点:
1、 CollectionViewSource:可扩展应用程序标记语言 (XAML) 代理
CollectionViewSource.SortDescriptions: 排序
CollectionViewSource.GroupDescriptions:分组
2、XmlDataProvider:允许以声明方式访问数据绑定的 XML 数据
XData:表示可以显示为的值的文本数据 Value 节点
3、在ListBox中,假如不设置ListBox.GroupStyle时,不会展示分组
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
三、分析代码
1、创建CollectionViewSource
当source是ObservableCollection集合时
<CollectionViewSource Source="{StaticResource Places}" x:Key="Cvs">
<CollectionViewSource.SortDescriptions>
<componentModel:SortDescription PropertyName="CityName"/>
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="State"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
当source是XmlDataProvider时
<CollectionViewSource x:Key="MySortedTasks1"
Source="{StaticResource MyTasks}">
<CollectionViewSource.SortDescriptions>
<componentModel:SortDescription PropertyName="@Priority" />
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="@Type" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
2、将CollectionViewSource绑定到ListBox
ListBox 的 DisplayMemberPath :获取或设置源对象上的值的路径,以用作对象的可视表示形式。
<ListBox ItemsSource="{Binding Source={StaticResource Cvs}}"
DisplayMemberPath="CityName" Name="lb">
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
</ListBox>