Cómo: Ordenar datos en una vista

En este ejemplo se describe cómo ordenar los datos de una vista.

Ejemplo

En el ejemplo siguiente se crea un elemento ListBox sencillo y un elemento 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>

El controlador de eventos Click del botón contiene lógica para ordenar los elementos de ListBox en orden descendente. Puede hacerlo porque agregar elementos a ListBox de esta manera hace que se agreguen al elemento ItemCollection de ListBox, y ItemCollection deriva de la clase CollectionView. Si va a enlazar ListBox a una colección mediante la propiedad ItemsSource, puede usar la misma técnica para ordenar.

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

Siempre que tenga una referencia al objeto de vista, puede usar la misma técnica para ordenar el contenido de otras vistas de colección. Para ver un ejemplo de cómo obtener una vista, consulte Obtener la vista predeterminada de una recopilación de datos. Para ver otro ejemplo, consulte Procedimiento para ordenar una columna GridView cuando se hace clic en un encabezado. Para obtener más información sobre las vistas, consulte Enlace a colecciones en Información general sobre el enlace de datos.

Para ver un ejemplo de cómo aplicar la lógica de ordenación en lenguaje XAML, consulte Ordenación y agrupación de datos mediante una vista en XAML.

Vea también