Comment : trier et grouper des données à l'aide d'une vue en XAMLHow to: Sort and Group Data Using a View in XAML

Cet exemple montre comment créer une vue d’une collection de données dans langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML).This example shows how to create a view of a data collection in langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML). Les vues permettent les fonctionnalités de regroupement, de tri, de filtrage et la notion d’un élément actuel.Views allow for the functionalities of grouping, sorting, filtering, and the notion of a current item.

ExempleExample

Dans l’exemple suivant, la ressource statique nommée places est définie comme une collection d’objets place , dans laquelle chaque objet place est constitué d’un nom de ville et de l’État.In the following example, the static resource named places is defined as a collection of Place objects, in which each Place object is consisted of a city name and the state. Le préfixe src est mappé à l’espace de noms dans lequel la source de données est définie.The prefix src is mapped to the namespace where the data source Places is defined. Le préfixe SCM est mappé à "clr-namespace:System.ComponentModel;assembly=WindowsBase" et les fichiers DAT sont mappés à "clr-namespace:System.Windows.Data;assembly=PresentationFramework".The prefix scm maps to "clr-namespace:System.ComponentModel;assembly=WindowsBase" and dat maps to "clr-namespace:System.Windows.Data;assembly=PresentationFramework".

L’exemple suivant crée une vue de la collection de données qui est triée par nom de ville et regroupée par État.The following example creates a view of the data collection that is sorted by the city name and grouped by the state.

<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 ensuite être une source de liaison, comme dans l’exemple suivant :The view can then be a binding source, as in the following example:

<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 d’un symbole @.For bindings to XML data defined in an XmlDataProvider resource, precede the XML name with an @ symbol.

<XmlDataProvider x:Key="myTasks" XPath="Tasks/Task">
    <x:XData>
        <Tasks xmlns="">
            <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 aussiSee also