WPF,ListView设置分组
CollectionViewSource 绑定的是从数据库取出的数据ListBind以DeptName为分组依据
<Window.Resources> <CollectionViewSource x:Key="Data" Source="{Binding ListBind} </Window.Resources>
正文
CollectionViewSource 绑定的是从数据库取出的数据ListBind 以DeptName为分组依据 <Window.Resources> <CollectionViewSource x:Key="Data" Source="{Binding ListBind}"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="DeptName"/> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </Window.Resources>
分组字段也可以在后台中定义
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvItemsCategory.ItemsSource);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("CategoryType")
"CategoryType"是要绑定的字段名 view.GroupDescriptions.Add(groupDescription);
以DeptName为分组依据,扩展列头显示科室名称DeptName, TextBlock绑定的数据为DeptName的Name,而不是Text="{Binding Path=DeptName}"
<ListView Name="list_Reg" ItemsSource="{Binding Source={StaticResource Data}}" Style="{StaticResource ListViewStyle}"> <!--分组合并style--> <ListView.GroupStyle> <GroupStyle> <GroupStyle.ContainerStyle> <Style TargetType="{x:Type GroupItem}"> <Setter Property="Margin" Value="0,0,0,5"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Expander IsExpanded="True" BorderBrush="#FF1975A0" BorderThickness="2"> <Expander.Header> <DockPanel> <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="auto"/> </DockPanel> </Expander.Header> <Expander.Content> <ItemsPresenter/> </Expander.Content> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle> </GroupStyle> </ListView.GroupStyle>后来看到xml的分组
http://www.cnblogs.com/liuyazhou/archive/2009/09/10/1563886.html
<Window.Resources> <XmlDataProvider x:Key="OKData" XPath="/Info"> <x:XData> <Info xmlns=""> <Item ID="12345" Name="Book1" Price="$32.05" Author="author1" Catalog="Business"/> <Item ID="23456" Name="Book2" Price="$32.05" Author="author2" Catalog="Language"/> <Item ID="34567" Name="Book3" Price="$32.05" Author="author3" Catalog="Business"/> <Item ID="67891" Name="Book4" Price="$32.05" Author="author4" Catalog="Business"/> <Item ID="78910" Name="Book5" Price="$32.05" Author="author5" Catalog="Language"/> <Item ID="89101" Name="Book6" Price="$32.05" Author="author6" Catalog="Business"/> <Item ID="91011" Name="Book7" Price="$32.05" Author="author7" Catalog="Business"/> <Item ID="10111" Name="Book8" Price="$32.05" Author="author8" Catalog="Business"/> </Info> </x:XData> </XmlDataProvider> <CollectionViewSource x:Key='src' Source="{Binding Source={StaticResource OKData},XPath=Item}"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="@Catalog"/> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </Window.Resources> <Grid> <ListView Name="listViewTask" ItemsSource='{Binding Source={StaticResource src}}' BorderThickness="0" SelectionChanged="listViewTask_SelectionChanged" > <ListView.GroupStyle> <GroupStyle> <GroupStyle.ContainerStyle> <Style TargetType="{x:Type GroupItem}"> <Setter Property="Margin" Value="0,0,0,5"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Expander IsExpanded="True" BorderBrush="Red" BorderThickness="2"> <Expander.Header> <DockPanel> <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/> <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/> </DockPanel> </Expander.Header> <Expander.Content> <ItemsPresenter/> </Expander.Content> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle> </GroupStyle> </ListView.GroupStyle> <ListView.View> <GridView> <GridViewColumn Header="ID" DisplayMemberBinding="{Binding [email protected]}" Width="100"/> <GridViewColumn Header="Name" DisplayMemberBinding="{Binding [email protected]}" Width="140"/> <GridViewColumn Header="Price" DisplayMemberBinding="{Binding [email protected]}" Width="100"/> <GridViewColumn Header="Author" DisplayMemberBinding="{Binding [email protected]}" Width="140"/> </GridView> </ListView.View> </ListView>原文链接:http://www.cto800.com/view/11971092829688260658.html