您的位置:首页 > 其它

WPF GridViewColumn Sort DataTemplate

2013-07-02 11:42 357 查看



wpf的GridViewColumn的排序要用到ICollectionView 的SortDescriptions.SortDescriptions数组里是 SortDescription, SortDescription有2个参数, 第一个为属性, 第二个为升序降序的选择。
难点主要是第一个, 什么为属性? 属性就是你单条记录所绑定的数据层, 然后在里面选择你想要通过数据层的哪个字段来排序。

示例:
[align=left] <DataTemplate x:Key="isVisibleShown">[/align][align=left] <TextBlock Visibility="{Binding Value.IsShowMe, Converter={StaticResource BooleanToVisibilityConverter}}">[/align][align=left] <TextBlock.Text>[/align][align=left] <PriorityBinding>[/align][align=left] <Binding Path="Value.Label" Converter="{StaticResource IsPropertyExistConverter}" IsAsync="True"/>[/align][align=left] <Binding Path="Key" Converter="{StaticResource DebugConverter}" IsAsync="True"/>[/align][align=left] </PriorityBinding>[/align][align=left] </TextBlock.Text> [/align][align=left] </TextBlock> [/align][align=left] </DataTemplate>[/align][align=left] <GridView x:Key="prGridView">[/align][align=left] <GridViewColumn HeaderTemplate="{StaticResource FieldCellTemplate}" CellTemplate="{StaticResource isVisibleShown}"/>[/align][align=left] </GridView>[/align][align=left]
[/align][align=left]这个prGridView中column应用了一个DataTemplate, 假如 GridView绑定一个字典Dictinory<string, Model>, 那每条就是一个KeyValuePair, DataTemplate里Text绑定了Model里面的Label, [/align][align=left]然后后台:[/align][align=left]
[/align][align=left] ICollectionView view = CollectionViewSource.GetDefaultView(lsvConfig.ItemsSource);[/align][align=left]
[/align][align=left] if (view.CanSort && view.SortDescriptions.Count <= 0)[/align][align=left] {[/align][align=left] view.SortDescriptions.Add(new SortDescription("Value.Label", ListSortDirection.Ascending));[/align][align=left] view.Refresh();[/align][align=left] }[/align][align=left]
[/align][align=left]指定按model里面的label来排序[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: