所以我有一個datagrid,我需要添加自定義排序,我也需要知道排序的確切順序。Silverlight和icollectionview
我已閱讀爲了做到這一點我需要實現一個自定義icollectionview並將其綁定到數據網格。
我遇到的問題是微軟在這個界面上給出的文檔並不是那麼好。有誰知道如何做到這一點或有任何好的教程如何實現這個接口的Silverlight?
所以我有一個datagrid,我需要添加自定義排序,我也需要知道排序的確切順序。Silverlight和icollectionview
我已閱讀爲了做到這一點我需要實現一個自定義icollectionview並將其綁定到數據網格。
我遇到的問題是微軟在這個界面上給出的文檔並不是那麼好。有誰知道如何做到這一點或有任何好的教程如何實現這個接口的Silverlight?
我在找相同的東西,從Colin Eberhardt找到本文章。它展示瞭如何使用ICollectionView的實現來實現排序。如果您想知道如何實現過濾,請告訴我。
下面介紹如何使用ICollectionView執行排序。
ICollectionView view = CollectionViewSource.GetDefaultView(someCollection);
view.SortDescriptions.Add(new SortDescription("someProperty", ListSortDirection.Ascending));
view.SortDescriptions.Add(new SortDescription("someOtherProperty", ListSortDirection.Descending));
但是這不正是我所說的「自定義排序」 ......它只是讓你選擇那種標準和方向。你能更具體地說明你想做什麼嗎?
我發現的最好的例子是Microsoft的ICollectionView實現,它是爲與DataGrid一起使用而創建的。不幸的是,他們在內部標記它,所以你不能直接使用它(和一個副本&源的粘貼需要一些修改)。打開Reflector並打開System.Windows.Controls.Data.dll - 導航到System.Windows.Controls命名空間,在那裏您可以找到ListCollectionView。這裏的定義表明,它實現了ICollectionView:
內部類的ListCollectionView:ICollectionView,INotifyCollectionChanged,INotifyPropertyChanged的,IEnumerable的 ...
我真的希望微軟會提供該類 - 幾乎每一個LOB應用程序需要它。
Silverlight 3現在支持並實現了ICollectionView,名爲PagedCollectionView。
這提供了排序和分組,但不是過濾。
對於誰瀏覽了這個問題其他的,我發現這些網站有幫助,以及:
我希望的Silverlight 5有一個更好的選擇。 :)
我在這裏的問題是,silverlight實際上並沒有CollectionViewSource,所以我將不得不實施它 – zachary 2009-06-10 15:52:30
好吧,我沒有意識到這個類在Silverlight中丟失。奇怪的是,ICollectionView接口是存在的,但似乎沒有任何類實現它...即使ItemCollection類沒有(在WPF中它)。奇怪... – 2009-06-10 16:20:23