Tengo una lista de Layers
vinculada a un TreeView
donde cada instancia tiene una lista de Effects
. Los muestro a través de HierarchicalDataTemplate, que funciona muy bien, pero estoy tratando de ordenarlos usando SortDescriptions
.¿Cómo ordenar elementos TreeView utilizando SortDescriptions en Xaml?
No sé cómo hacer esto en XAML, pero haciendo esto ordena sólo el primer nivel de artículos, no los sub elementos:
ICollectionView view = CollectionViewSource.GetDefaultView (treeView1.ItemsSource);
view.SortDescriptions.Add (new SortDescription ("Name", ListSortDirection.Ascending));
Estoy tratando de ordenarlos por primera vez por .Color
, luego por .Name
.
¿Alguna idea?
EDIT: He añadido este código:
<Window.Resources>
<CollectionViewSource x:Key="SortedLayers" Source="{Binding AllLayers}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Color" />
<scm:SortDescription PropertyName="Name" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
Pero esto sólo lo hace para el primer nivel de la jerarquía. ¿Cómo puedo especificarlo para cada capa? ¿Efectos de recolección?
Sólo una muy pequeña mejora, cambie el valor como valor de System.Collections.IList a (System.Collections.IList) para evitar tener una referencia nula excepti si el valor no es un IList (debe tener una InvalidCastException) –