Cómo: Ordenar y agrupar datos mediante una vista en XAML
Actualización: noviembre 2007
En este ejemplo se muestra cómo crear una vista de una recolección de datos en Lenguaje de marcado de aplicaciones extensible (XAML). Las vistas aportan las funcionalidades de agrupar, ordenar, filtrar y la noción de un elemento actual.
Ejemplo
En el ejemplo siguiente, se define el recurso estático denominado places como una colección de objetos Place, en la que cada objeto Place consta de un nombre de ciudad y su estado. El prefijo src se asigna al espacio de nombres donde se define el origen de datos Places. Los prefijos scm y dat se asignan a los espacios de nombres System.ComponentModel y System.Windows.Data respectivamente.
En el ejemplo siguiente se crea una vista de la recolección de datos ordenada por el nombre de la ciudad y agrupada por el estado.
<Window.Resources>
<src:Places x:Key="places"/>
<CollectionViewSource Source="{StaticResource places}" x:Key="cvs">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="CityName"/>
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<dat:PropertyGroupDescription PropertyName="State"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
La vista puede ser entonces un origen de enlace, como en el ejemplo siguiente:
<ListBox ItemsSource="{Binding Source={StaticResource cvs}}"
DisplayMemberPath="CityName" Name="lb">
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
</ListBox>
Para los enlaces a datos XML definidos en un recurso XmlDataProvider, coloque el símbolo @ delante del nombre XML.
<XmlDataProvider x:Key="myTasks" XPath="Tasks/Task">
<x:XData>
<Tasks >
<Task Name="Groceries" Priority="2" Type="Home">
<CollectionViewSource x:Key="mySortedTasks"
Source="{StaticResource myTasks}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="@Priority" />
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<dat:PropertyGroupDescription PropertyName="@Priority" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
Para ver el ejemplo completo, vea Ejemplo Sorting and Grouping Data in XAML.
Vea también
Tareas
Cómo: Obtener la vista predeterminada de una recolección de datos
Conceptos
Información general sobre el enlace de datos