Tengo un ObservableCollection, donde MyData es una clase con 4 propiedades, es decir, int id, nombre de cadena, bool IsSelected, cadena IsVisible.Sort ObservableCollection: ¿cuál es el mejor enfoque?
Este ObservableCollection está vinculado a un combobox con casillas de verificación (datos de ciudades, por ejemplo). Ahora, cuando el usuario marque las casillas de verificación, la próxima vez que abra el menú desplegable, todas las selecciones deben aparecer en orden ascendente por su nombre.
También he implementado completa automático cuando el usuario escribe en 3 caracteres en el cuadro combinado, la caída hacia abajo se abrirán mostrando todas las selecciones en primer lugar, a continuación, a continuación, todos los elementos a partir de los 3 caracteres de tipo en el usuario.
He investigado y puesto en práctica el siguiente código y está funcionando muy bien, pero quiero saber si este es el mejor enfoque o puedo aplicar esto de una manera mejor, el código es:
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;
Gracias de antemano por su tiempo!
Si está ordenando la vista predeterminada, el enlace a la colección City debería proporcionarle resultados ordenados. Cuando se vincula a una colección, WPF se une a su vista predeterminada. – Goran
@Goran - Sí, lo sé. Pero creo que es mejor ser explícito. –
Gracias Pavlo! –