Condividi tramite


Procedura: Ordinare i dati in una vista

In questo esempio viene descritto come ordinare i dati in una vista.

Esempio

Nell'esempio seguente viene creato un ListBox semplice e un 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>

Il gestore eventi Click del pulsante contiene la logica per ordinare gli elementi nel ListBox in ordine decrescente. Questa operazione può essere eseguita perché l'aggiunta di elementi a un ListBox in questo modo li aggiunge al ItemCollection del ListBoxe ItemCollection deriva dalla classe CollectionView. Se si associa il ListBox a una raccolta usando la proprietà ItemsSource, è possibile utilizzare la stessa tecnica per ordinare.

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

Finché si dispone di un riferimento all'oggetto vista, è possibile utilizzare la stessa tecnica per ordinare il contenuto di altre viste di raccolta. Per un esempio di come ottenere una vista, vedere Ottenere la visualizzazione predefinita di una raccolta dati. Per un altro esempio, vedere l'ordinamento di una colonna GridView, quando si clicca sull'intestazione. Per ulteriori informazioni sulle viste, vedere Binding alle raccolte in Panoramica del Data Binding.

Per un esempio di come applicare la logica di ordinamento in XAML (Extensible Application Markup Language), vedi Ordinare e raggruppare i dati usando una visualizzazione in XAML.

Vedere anche