Partager via


Comment : trier et grouper des données à l'aide d'une vue en XAML

Cet exemple indique comment créer une vue d'une collecte de données en Extensible Application Markup Language (XAML). 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. Le préfixe scm est mappé vers "clr-namespace:System.ComponentModel;assembly=WindowsBase" et le préfixe dat est mappé vers "clr-namespace:System.Windows.Data;assembly=PresentationFramework".

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>

Voir aussi

Tâches

Comment : obtenir la vue par défaut d'une collection de données

Référence

CollectionViewSource

Concepts

Vue d'ensemble de la liaison de données

Autres ressources

Rubriques "Comment" relatives aux liaisons de données

Historique des modifications

Date

Historique

Motif

Juillet 2010

Ajout des chaînes littérales pour les préfixes scm et dat.

Commentaires client.