Sıralama için SortDescriptions özelliğine sahip olan CollectionViewSource'dan türetilen bir koleksiyonu sıralamaya çalışıyorum. Ne yazık ki, kendi özel IComparer'ımı kullanabilmem gerekiyor, ancak bunu yapmanın bir yolunu bulamıyorum. Datagrid düşünün ve kendi çoklu sütun sıralama algoritmam var. Bunu yapmanın bir yolunun, CollectionViewSource ile gerçek veri kaynağım arasında ek bir katman olan CollectionChanged'i uygulayan bir koleksiyon kullanmak olduğunu düşünüyorum, ancak herhangi bir öneri varsa gerçekten daha iyi bir yolu tercih ederim.Özel IComparer kullanarak CollectionViewSource Sıralama
12
A
cevap
13
Bea Stollnitz özel bir örnekleme örneğine sahiptir here.
bu maddenin önemli bir nokta, bir zayıf ICollection
veya IEnumerable
arabirim yerine CollectionViewSource
IList
bir üzere uygulanmasını bağlamaktır. Bununla, View
özelliği, CollectionView
yerine ListCollectionView
örneğini döndürür. Özel sıralamanızı yapmak için IComparer
atamak için ListCollectionView.CustomSort
kullanabilirsiniz. İşleri kolaylaştırmak için, bir bütün olarak bir ders yerine Comparison
temsilci kullanmak için Comparer<T>.Create
yöntemini kullanabilirsiniz.
İlgili konular
- 1. Özel sıralama ile CollectionViewSource
- 2. Özel Sıralama (Üç alanda IComparer)
- 3. WPF DataGrid'e özel sıralama kuralı nasıl uygularım?
- 4. CollectionViewSource bir kaynaktan
- 5. LINQ kullanarak OrderBy'de özel sıralama mantığı
- 6. C# lambda ifadeleri ve IComparer
- 7. C# - Newtonsoft - Özel sıralama IEnumerable özelliği - JSON
- 8. CollectionViewSource Use Question
- 9. NSArrayController, özel sıralama
- 10. PowerBI grafiğinde özel sıralama
- 11. ruby özel sıralama yöntemi
- 12. Binding PropertyName of CollectionViewSource SortAçıklama içinde Xaml
- 13. nasıl jenerik karşılaştırıcısı (IComparer) Tümceyi idare yapabilir?
- 14. Liste sıralama kullanarak STL sıralama işlevi
- 15. CollectionViewSource, özellik değişikliğini yeniden sıralamaz
- 16. Excel'de özel bir sipariş kullanarak sıralama hatası veriyor 1004
- 17. Django Admin - özel yöntemle sıralama
- 18. Özel bir sıraya göre sıralama
- 19. özel taksonomi sıralama düzeni çalışmıyor
- 20. Neden CollectionViewSource.SortDescriptions kullanarak sıralama yavaş?
- 21. Javascript kullanarak açılır liste sıralama
- 22. std :: devralınan functor kullanarak sıralama
- 23. Realm kullanarak nasıl sıralama yapılır?
- 24. Anonim sınıf kullanarak java sıralama
- 25. IComparer argümanı yerine lambda ifadesinin kullanılması
- 26. NSFetchedResultController ile özel sıralama (alt sınıf NSSortDescriptor)
- 27. sıralama
- 28. JTable, özel başlık oluşturucu ve sıralama simgeleri
- 29. Özel şablon alanları ile Gridview sıralama
- 30. Veri sayfalarında özel sıralama nasıl yapılır?
Bu makalenin temel noktası, 'KoleksiyonViewSource'unu daha zayıf bir' ICollection 'veya' IEnumerable 'arabiriminden ziyade bir' IList 'uygulamasına bağlamaktır. Bununla, 'View' özelliği 'CollectionView' yerine bir' ListCollectionView' örneğini döndürür. Özel sıralamanızı yapmak için 'IComparer 'atamak için' ListCollectionView.CustomSort' kullanabilirsiniz. İşleri daha kolay hale getirmek için ek olarak, bir "Karşılaştırma" temsilcisini kullanmak üzere ['Comparer .Create'] (http://msdn.microsoft.com/en-gb/library/hh737198.aspx) yöntemini kullanabilirsiniz. bütün sınıf. –
ygoe