У меня есть ObservableCollection, где MyData - это класс с 4 свойствами, то есть int id, имя строки, bool IsSelected, строка IsVisible.
Эта 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;
Заранее спасибо за ваше время!