Comment : trier des données dans une vue

Mise à jour : novembre 2007

Cet exemple décrit comment trier des données dans une vue.

Exemple

L'exemple suivant crée un ListBox simple et un Button :

<Window x:Class="ListBoxSort_snip.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    Title="ListBoxSort_snip" Height="300" Width="300">
    <DockPanel>
      <ListBox Name="myListBox" DockPanel.Dock="Top">
        <ListBoxItem>my</ListBoxItem>
        <!--Or you can set the content this way:-->
        <!--<ListBoxItem Content="my"/>-->
        <ListBoxItem>1</ListBoxItem>
        <ListBoxItem>Sort</ListBoxItem>
        <ListBoxItem>3</ListBoxItem>
        <ListBoxItem>ListBox</ListBoxItem>
        <ListBoxItem>2</ListBoxItem>
      </ListBox>
      <Button Click="OnClick" Width="30" Height="20" DockPanel.Dock="Top">Sort</Button>
    </DockPanel>
</Window>

Le gestionnaire d'événements Click du bouton contient la logique de tri des éléments dans le ListBox dans l'ordre décroissant. Vous pouvez effectuer cette opération parce qu'ajouter ainsi des éléments au ListBox les ajoute à l'objet ItemCollection du ListBox, et que ItemCollection dérive de la classe CollectionView. Si vous liez votre ListBox à une collection en utilisant la propriété ItemsSource, vous pouvez utiliser la même technique pour effectuer le tri.

private void OnClick(object sender, RoutedEventArgs e)
{
    myListBox.Items.SortDescriptions.Add(
        new SortDescription("Content", ListSortDirection.Descending));
}

Tant que vous avez une référence à l'objet de vue, vous pouvez utiliser la même technique pour trier le contenu d'autres vues de collection. Pour obtenir un exemple sur la manière d'obtenir une vue, consultez Comment : obtenir la vue par défaut d'une collection de données. Pour obtenir un autre exemple, consultez Comment : trier une colonne GridView lors d'un clic sur un en-tête. Pour plus d'informations sur les vues, consultez la section relative aux liaisons de collections dans Vue d'ensemble de la liaison de données.

Pour obtenir un exemple sur la manière d'appliquer une logique de tri en XAML (Extensible Application Markup Language), consultez Comment : trier et grouper des données à l'aide d'une vue en XAML.

Voir aussi

Tâches

Comment : trier une colonne GridView lors d'un clic sur un en-tête

Comment : filtrer les données d'une vue

Concepts

Vue d'ensemble de la liaison de données

Référence

CustomSort

Autres ressources

Exemples de liaisons de données

Rubriques Comment relatives aux liaisons de données