2009-09-22 57 views
1

我在窗體中有兩個組合框,它們具有確切的itemssource屬性。這兩個組合框需要排序,但有兩種不同的方式。一個按ID(數字)排序,另一個按名稱排序(按字母順序)。在WPF中對兩個組合框進行排序

是否有可能做這樣的事情?

感謝

回答

0

如何在WPF http://www.kudzuworld.com/Blogs/Tech/20070815A.en.aspx

排序列表框和組合框由於WPF不提供其組合框「排序」屬性,你需要兩個不同的集合。

在上面提供的鏈接中,評論者使用ListCollectionView對象發佈了以下方法以獲取自定義排序。這允許使用來自數據源的單一集合,同時加入收藏的附加層進行排序:

// Using System.ComponentModel; 
ListCollectionView view = new ListCollectionView (channel.Members); 
view.SortDescriptions.Add(new SortDescription("lastName", ListSortDirection.Ascending); 
view.SortDescriptions.Add(new SortDescription("firstName", ListSortDirection.Ascending); 
view.CustomSort = new IComparerImplementation; //Do this if you want a custom sort; 
view.Refresh(); 
+1

正確的方法是在使用的CollectionView ItemsSource。您可以通過一個來源獲得多個CollectionView,每個CollectionView都有不同的排序說明, – decasteljau 2009-09-23 12:09:43

+0

爲什麼這是正確的?它阻止第二個數據庫命中嗎? – 2009-09-23 14:41:49

+0

@Robert Harvey:集合保持不變,從數據庫或其他任何地方讀取一次。將有兩個CollectionView客戶端對象用作ItemsSource,作爲演示文稿和數據收集之間的附加層。 – 2009-09-23 15:10:53