2010-12-15 9 views
5

Mam następujący widzenia gromadzeniaJak sortować grupy CollectionViewSource za

<CollectionViewSource x:Key="messages" Source="{Binding src}"> 
    <CollectionViewSource.GroupDescriptions> 
     <PropertyGroupDescription PropertyName="Group"/> 
    </CollectionViewSource.GroupDescriptions> 
</CollectionViewSource> 

Potem przypisać go do katalogów za ItemsSource. Teraz, jak sortować Grupy według ich nazwy? Wydają się mieć kolejność losową.

Odpowiedz

6

Po prostu sortuj według grupy. To powinno zadziałać:

<CollectionViewSource x:Key="messages" Source="{Binding src}"> 
    <CollectionViewSource.GroupDescriptions> 
     <PropertyGroupDescription PropertyName="Group"/> 
    </CollectionViewSource.GroupDescriptions> 
    <CollectionViewSource.SortDescriptions> 
     <SortDescription PropertyName="Group" /> 
    </CollectionViewSource.SortDescriptions> 
</CollectionViewSource> 
+0

Czy wiesz, jak to zrobić w kodzie? Moim zamiarem jest sortowanie istniejących grup w siatce po kliknięciu przycisku rosnącego/malejącego. Dzieje się tak, że mogę sortować moje wiersze według nazwy pola, ale nie grupy. – TWood

+0

TWood - messages.SortDescriptions.Add (new SortDescription ("Group", ListSortDirection.Ascending)); – cjmurph

+0

Na wypadek, gdyby ktoś miał ten sam problem co ja: może być konieczne dodanie xmlns: scm = "clr-namespace: System.ComponentModel; assembly = WindowsBase" w definicji okna i użycie 'scm 'jako przestrzeni nazw dla SortDescription. –