WPF

2011-01-20 23 views
13

'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

cevap

21
<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

http://bea.stollnitz.com/blog/?p=17

+0

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

+0

bu benim için işe yaramadı ... Arkasındaki kodda 'ICollectionView' kullanıyorum (xaml değil) – JobaDiniz

4

Gruplar sıralama yapmak çok kolay olmasa da mümkündür. Örnek üzerinde açıklayacağım.

  • SortDescriptionGroup başvuran ekle

    1. Group özelliği başvuru PropertyGroupDescription Ekle: grup elemanları isteyen ve her grup içinde elemanlarını sıralamak sonra alfabetik sıralamak Eğer

      class CollectionElement 
      { 
          public string Name {get; set; } 
          public string Group {get; set; } 
      } 
      

      alfabetik sonra aşağıdakileri yapmanız gerekir

    2. 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