Comment : trier et grouper des données à l'aide d'une vue en XAML
Mise à jour : novembre 2007
Cet exemple indique comment créer une vue d'une collecte de données en XAML (Extensible Application Markup Language). Les vues tiennent compte des fonctionnalités de regroupement, de tri, de filtrage, et la notion d'un élément actuel.
Exemple
Dans l'exemple suivant, la ressource statique nommée emplacements est définie comme une collection d'objets Emplacement, dans laquelle chaque objet Emplacement se compose d'un nom de ville et d'état. Le préfixe src est mappé à l'espace de noms où la source de données Emplacements est définie. Les préfixes scm et dat sont mappés aux espaces de noms System.ComponentModel et System.Windows.Data, respectivement.
L'exemple suivant crée une vue de la collecte de données triée par nom de ville et groupée par état.
<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 vue peut alors être une source de liaison, comme dans l'exemple suivant :
<ListBox ItemsSource="{Binding Source={StaticResource cvs}}"
DisplayMemberPath="CityName" Name="lb">
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
</ListBox>
Pour les liaisons aux données XML définies dans une ressource XmlDataProvider, faites précéder le nom XML du symbole @.
<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>
Pour consulter l'exemple entier, consultez Tri et regroupement de données en XAML, exemple.
Voir aussi
Tâches
Comment : obtenir la vue par défaut d'une collection de données
Concepts
Vue d'ensemble de la liaison de données