Estoy tratando de ordenar una colección derivada de CollectionViewSource, que simplemente tiene SortDescriptions para ordenar. Lamentablemente, necesito poder usar mi propio IComparer personalizado, pero parece que no puedo encontrar una manera de hacerlo. Piensa en una cuadrícula de datos y tengo mi propio algoritmo de ordenación de múltiples columnas. Estoy pensando que una forma de hacerlo es utilizar una colección que implemente CollectionChanged que sea una capa adicional entre CollectionViewSource y mi fuente de datos verdadera, pero realmente preferiría una mejor manera si alguien tiene alguna sugerencia.Ordenando CollectionViewSource usando IComparer personalizado
12
A
Respuesta
13
Bea Stollnitz tiene un ejemplo de clasificación personalizado here.
El punto clave de este artículo es para obligar a la CollectionViewSource
a un IList
aplicación en lugar de una más débil ICollection
o IEnumerable
interfaz. Con eso, la propiedad View
devuelve una instancia de ListCollectionView
en lugar de CollectionView
. A continuación, puede usar ListCollectionView.CustomSort
para asignar un IComparer
para hacer su clasificación personalizada. Para facilitar las cosas, también puede usar el método Comparer<T>.Create
para usar un delegado Comparison
en lugar de una clase completa.
Cuestiones relacionadas
- 1. ¿Cómo usar IComparer personalizado para SortedDictionary?
- 2. Ordenando una lista de un tipo personalizado
- 3. CollectionViewSource CurrentItem
- 4. WPF CollectionViewSource ¿Vistas múltiples?
- 5. IComparer para clasificación natural
- 6. LINQ orderby vs IComparer
- 7. IComparer utilizando Lambda Expresión
- 8. Encuadernación con CollectionViewSource
- 9. WPF CollectionViewSource Agrupación
- 10. Ordenando números y cadenas mixtas
- 11. C# expresiones lambda y IComparer
- 12. CollectionViewSource Use la pregunta
- 13. Ordenando objetos Java usando múltiples claves
- 14. Ordenando datos grandes usando MapReduce/Hadoop
- 15. Ordenando la lista desplegable usando Javascript
- 16. Ordenando una cola usando la misma cola
- 17. CollectionViewSource en aplicación ventanas metro
- 18. Ordenando NSDictionary
- 19. Ordenación personalizada (IComparer en tres campos)
- 20. Enlazando un CollectionViewSource dentro de un DataTemplate
- 21. Implementación CollectionViewSource MVVM para WPF DataGrid
- 22. Ordenando NSTableView
- 23. Ordenando música
- 24. Ordenando LinkedHashMap
- 25. Ordenando Directory.GetFiles()
- 26. Cambio CollectionViewSource Fuente en un mundo MVVM
- 27. cómo ordenar los grupos de CollectionViewSource
- 28. SQLite - ordenando una tabla
- 29. C# ordenando una Lista <> usando Tuple?
- 30. Ordenando múltiples elementos al mismo tiempo usando jQuery UI
El punto clave de ese artículo es vincular el 'CollectionViewSource' a una implementación' IList' en lugar de una interfaz 'ICollection' o' IEnumerable' más débil. Con eso, la propiedad 'View' devuelve una instancia' ListCollectionView' en lugar de 'CollectionView'. A continuación, puede usar 'ListCollectionView.CustomSort' para asignar un' IComparer' para hacer su clasificación personalizada. Para facilitar las cosas, también puede utilizar el método ['Comparer .Create'] (http://msdn.microsoft.com/en-gb/library/hh737198.aspx) para usar un delegado' Comparación 'en lugar de un toda la clase. –
ygoe