我有一個ObservableCollection,其中MyData是具有4個屬性的類,即int id,字符串名稱,布爾IsSelected,字符串IsVisible。Sort ObservableCollection - 什麼是最好的方法?
此ObservableCollection被綁定到帶有複選框(例如城市數據)的組合框。現在,當用戶選中複選框時,下次打開下拉列表時 - 所有選擇應按名稱以升序排列。
當用戶在組合框中鍵入3個字符時,我也實現了自動完成功能,下拉菜單首先顯示所有選擇,然後從用戶輸入3個字符開始的所有項目。
我已經研究並實施了下面的代碼,它工作正常,但我想知道這是否是最好的辦法還是我可以以更好的方式實現這一點,代碼:
IEnumerable<MyData> sort;
ObservableCollection<MyData> tempSortedCities = new ObservableCollection<MyData>();
sort = City.OrderByDescending(item => item.IsSelected).ThenBy(item => item.Name.ToUpper()) ;
// City is my observablecollection<MyData> property in my Model binded to combobox in UI
foreach (var item in sort)
tempSortedCities.Add(item);
City.Clear(); // City is my observablecollection<MyData> property in my Model
City = tempSortedCities;
tempSortedCities = null;
sort = null;
謝謝提前爲您的時間!
如果您排序默認視圖,然後綁定到城市集合應該給你排序的結果。綁定到集合時,WPF將綁定到其默認視圖。 – Goran 2011-04-12 06:49:58
@Goran - 是的,我知道。但我認爲最好是明確的。 – 2011-04-12 07:46:37
謝謝帕夫洛! – 2011-04-16 05:25:28