日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

How do I sort groups of data items?(WPF)

發布時間:2024/6/3 asp.net 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 How do I sort groups of data items?(WPF) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



?今天我要介紹如何使用CollectionViewSource對數據進行分組以及對各個組進行排序

?
示例中的數據源是一組類型為Animal的對象組成的數據集合。Animal類包含NameCategory(枚舉類型)兩個屬性。現在要以Category為分組來顯示數據:
????<Window.Resources>
????????<local:Animals x:Key="animals"/>

????????<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}">
????????????<CollectionViewSource.GroupDescriptions>
????????????????<PropertyGroupDescription PropertyName="Category"/>
????????????</CollectionViewSource.GroupDescriptions>
????????</CollectionViewSource>

????????<DataTemplate x:Key="animalTemplate">
????????????<TextBlock Text="{Binding Path=Name}" Foreground="MediumSeaGreen"/>
????????</DataTemplate>
????</Window.Resources>

????<ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" ItemTemplate="{StaticResource animalTemplate}"/>

我在上一篇文章中介紹過CollecitonViewSourceCollectionViewSource類會在數據源的上層生成一個視圖。這個視圖監控著選中項,并且允許我們對數據項進行分組,排序和過濾

運行上面的代碼后,可以看到動物的名稱,但分組信息沒有顯示出來。接下來要創建一個顯示分組信息的模板。CollectionViewSource將每個分組都包裝到CollectionViewGroup對象中。然后顯示其Name屬性即可:

????<DataTemplate x:Key="categoryTemplate">
????????<TextBlock Text="{Binding Path=Name}" FontWeight="Bold" Foreground="ForestGreen" Margin="0,5,0,0"/>
????</DataTemplate>

接下來讓ItemsControl控件的GroupStyle屬性應用上面的模板:
????<ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}">
????????<ItemsControl.GroupStyle>
????????????<GroupStyle HeaderTemplate="{StaticResource categoryTemplate}" />
????????</ItemsControl.GroupStyle>
????</ItemsControl>


如果需要顯示多級別的分組,可以添加多個GroupStyle(示例中只添加了一個)

現在,程序已經可以正確地顯示分組和各個項目了。如果還要實現組的排序,并對組內的項進行排序該怎么作呢?我看到有人想寫個類似于”SortGroups”的方法來實現這個功能。實際上不必這么做,只要對“進行了分組的屬性”進行排序就可以實現這個功能:
????<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}">
????????<CollectionViewSource.GroupDescriptions>
????????????<PropertyGroupDescription PropertyName="Category"/>
????????</CollectionViewSource.GroupDescriptions>
????????<CollectionViewSource.SortDescriptions>
????????????<scm:SortDescription PropertyName="Category" />
????????????<scm:SortDescription PropertyName="Name" />
????????</CollectionViewSource.SortDescriptions>
????</CollectionViewSource>

?
有一點需要注意:Category是一個枚舉類型,所以“組排序”的順序是根據其在枚舉中定義的順序。而Name屬性是字符串類型,所以“組內排序”是根據字母順序

程序截圖:?



原文地址:http://www.beacosta.com/Archive/2006_01_01_bcosta_archive.html

?






轉載于:https://www.cnblogs.com/stswordman/archive/2007/01/08/615092.html

總結

以上是生活随笔為你收集整理的How do I sort groups of data items?(WPF)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。