'daki Grupları nasıl sipariş verebilirim? WPF'de, CollectionViewSource sıralamaya (SortDescriptions) ve gruplamaya (GroupDescriptions) izin verir. Bununla birlikte, grupları sipariş etmenin bir yolunu bulamıyorum. Mümkün mü?WPF
WPF
cevap
<CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Category"/>
</CollectionViewSource.GroupDescriptions>
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Category" />
<scm:SortDescription PropertyName="Name" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Hemen eklemek iki bizi ilk ve daha sonra gruplar içinde ürün grupları sıralamak için izin verir. (Artık) hiçbir etki bea.stollnitz.com olmadığı gerçeğine rağmen burada
Gruplar sıralama yapmak çok kolay olmasa da mümkündür. Örnek üzerinde açıklayacağım.
Group
başvuran ekle
Group
özelliği başvuru PropertyGroupDescription Ekle: grup elemanları isteyen ve her grup içinde elemanlarını sıralamak sonra alfabetik sıralamak Eğerclass CollectionElement { public string Name {get; set; } public string Group {get; set; } }
alfabetik sonra aşağıdakileri yapmanız gerekir
- Ekle SıralaDetaylara ekle referanslar
Name
Gruplama işlemi, aşağıdaki gibi etkili bir şekilde çalışıyor gibi görünüyor: Sonuç olarak, öğesinden önce sıralı olarak öğeleri sıralayın. Öğe bilinmeyen grupla karşılaştığında - bir grup oluşturun ve grup listesine ekleyin. Var olan gruptan öğe ile karşılaşırken - mevcut gruba ekleyin. (Gerçek uygulama farklı olabilir). Öğeleriniz, gruplarınızın görünmesini istediğiniz sıraya göre sıralanırsa, grupları etkili bir şekilde sıralayabilirsiniz. İki çeşit açıklamaları SortDescriptions.Adding
daha kontrol için
: GroupDescriptions' GroupDescription' 'doğan herhangi bir sınıf içerebilir' iken - zorunda yalnızca herhangi bir giriş nesnesini herhangi bir çıktı nesnesine çeviren GroupNameFromItem yöntemini geçersiz kılma yöntemi 'SortDescriptions' yalnızca özellik adlarını hedefleyen STRUCT (!!!!!) 'SortDescription 'öğesini destekler. Bu 2 dünyayı, bir yapıyı ve soyut bir sınıfı ilişkilendirmenin bir yolu yoktur. – springy76
bu benim için işe yaramadı ... Arkasındaki kodda 'ICollectionView' kullanıyorum (xaml değil) – JobaDiniz