2010-12-15 7 views
5

He siguiente vista de coleccióncómo ordenar los grupos de CollectionViewSource

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

Entonces asignarlo a ItemsSource de TreeView. Ahora, ¿cómo ordenar Grupos por su nombre? Parece que tienen orden aleatorio.

Respuesta

6

Solo ordene por grupo. Esto debería funcionar:

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

¿Por casualidad sabes cómo sacar eso en el código? Mi intención es clasificar los grupos existentes dentro de la cuadrícula cuando se hace clic en un botón ascendente/descendente. Lo que está sucediendo es que puedo ordenar mis filas por el nombre de campo, pero no los grupos. – TWood

+0

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

+0

Solo en caso de que alguien tenga el mismo problema que yo: Es posible que necesite agregar xmlns: scm = "clr-namespace: System.ComponentModel; assembly = WindowsBase" en su definición de ventana y use 'scm 'como espacio de nombres para SortDescription. –

Cuestiones relacionadas