Comment : trier des données dans une vueHow to: Sort Data in a View

Cet exemple décrit comment trier des données dans une vue.This example describes how to sort data in a view.

ExempleExample

L’exemple suivant crée un ListBox simple et un Button:The following example creates a simple ListBox and a Button:

<Window x:Class="ListBoxSort_snip.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://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 une logique permettant de trier les éléments de l' ListBox dans l’ordre décroissant.The Click event handler of the button contains logic to sort the items in the ListBox in the descending order. Vous pouvez effectuer cette opération, car l’ajout d’éléments à une ListBox de cette manière les ajoute à la ItemCollection du ListBoxet ItemCollection dérive de la classe CollectionView.You can do this because adding items to a ListBox this way adds them to the ItemCollection of the ListBox, and ItemCollection derives from the CollectionView class. Si vous liez votre ListBox à une collection à l’aide de la propriété ItemsSource, vous pouvez utiliser la même technique pour le tri.If you are binding your ListBox to a collection using the ItemsSource property, you can use the same technique to sort.

private void OnClick(object sender, RoutedEventArgs e)
{
    myListBox.Items.SortDescriptions.Add(
        new SortDescription("Content", ListSortDirection.Descending));
}
Private Sub OnClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
    myListBox.Items.SortDescriptions.Add(New SortDescription("Content", ListSortDirection.Descending))
End Sub

Tant que vous disposez d’une référence à l’objet de vue, vous pouvez utiliser la même technique pour trier le contenu d’autres affichages de collection.As long as you have a reference to the view object, you can use the same technique to sort the content of other collection views. Pour obtenir un exemple d’obtention d’une vue, consultez obtenir la vue par défaut d’une collection de données.For an example of how to obtain a view, see Get the Default View of a Data Collection. Pour un autre exemple, consultez Trier une colonne GridView lors d’un clic sur un en-tête.For another example, see Sort a GridView Column When a Header Is Clicked. Pour plus d’informations sur les affichages, consultez liaison à des collections dans vue d’ensemblede la liaison de données.For more information about views, see Binding to Collections in Data Binding Overview.

Pour obtenir un exemple de la façon d’appliquer une logique de tri dans langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML), consultez Trier et grouper des données à l’aide d’une vue en XAML.For an example of how to apply sorting logic in langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML), see Sort and Group Data Using a View in XAML.

Voir aussiSee also