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

Référence

CollectionViewSource

Autres ressources

Exemples de liaisons de données

Rubriques Comment relatives aux liaisons de données