足球小子飞毛腿,中秋彩信,观赏虾吧zadull
之前一直用的dev的gridcontrol,控件自带分组排序啥的。今天试了下在wpf自带的datagrid控件上实现分组和排序。
datagrid上实现这些功能主要用到collectionviewsource。collectionviewsource有对数据进行分组和排序过滤的功能。
<collectionviewsource x:key="cvslist" source="{binding list}" > <collectionviewsource.groupdescriptions> <propertygroupdescription propertyname="b"/> </collectionviewsource.groupdescriptions> <collectionviewsource.sortdescriptions> <scm:sortdescription propertyname="b" direction="descending"/> <scm:sortdescription propertyname="e"/> </collectionviewsource.sortdescriptions> </collectionviewsource>
将数据源绑定到collectionviewsource,并设置分组列和排序列。倒序可以设置direction属性为descending
<datagrid itemssource="{binding source={staticresource cvslist}}" />
将collectionviewsource绑定到datagrid,并设置datagrid的groupstyle,分组功能就可以使用了。
下面是我的例子
<window x:class="datagridtempalte.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:datagridtempalte" xmlns:scm="clr-namespace:system.componentmodel;assembly=windowsbase" mc:ignorable="d" title="mainwindow" height="450" width="800"> <window.resources> <collectionviewsource x:key="cvslist" source="{binding list}" > <collectionviewsource.groupdescriptions> <propertygroupdescription propertyname="b"/> </collectionviewsource.groupdescriptions> <collectionviewsource.sortdescriptions> <scm:sortdescription propertyname="b" direction="descending"/> <scm:sortdescription propertyname="e"/> </collectionviewsource.sortdescriptions> </collectionviewsource> </window.resources> <grid> <datagrid itemssource="{binding source={staticresource cvslist}}" autogeneratecolumns="false"> <datagrid.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" background="#ff112255" borderbrush="#ff002255" borderthickness="1,1,1,5" > <expander.header> <dockpanel> <textblock foreground="white" fontweight="bold" text="{binding path=name}"/> </dockpanel> </expander.header> <expander.content> <itemspresenter /> </expander.content> </expander> </controltemplate> </setter.value> </setter> </style> </groupstyle.containerstyle> </groupstyle> </datagrid.groupstyle> <datagrid.columns> <datagridcheckboxcolumn header="a" binding="{binding a}"/> <datagridtextcolumn header="b" binding="{binding b}"/> <datagridtextcolumn header="c" binding="{binding c}"/> <datagridtextcolumn header="d" binding="{binding d}"/> <datagridtextcolumn header="e" binding="{binding e}"/> </datagrid.columns> </datagrid> </grid> </window>
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
网友评论