Cómo: Ordenar y agrupar datos mediante una vista en XAML
En este ejemplo se muestra cómo crear una vista de una recolección de datos en Extensible Application Markup Language (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. El prefijo scm se asigna a "clr-namespace:System.ComponentModel;assembly=WindowsBase" y dat se asigna a "clr-namespace:System.Windows.Data;assembly=PresentationFramework".
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>
Vea también
Tareas
Cómo: Obtener la vista predeterminada de una recolección de datos
Referencia
Conceptos
Información general sobre el enlace de datos
Otros recursos
Temas "Cómo..." sobre enlace de datos
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2010 |
Se han agregado cadenas literales para los prefijos scm y dat. |
Comentarios de los clientes. |