Compartir a través de


Cómo: Ordenar datos en una vista

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

Ejemplo

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

El Click controlador de eventos del botón contiene lógica para ordenar los elementos en ListBox en orden descendente. Puede hacerlo porque al agregar elementos de esta ListBox manera los agrega al ItemCollection de ListBox y ItemCollection deriva de la clase CollectionView. Si está vinculando ListBox a una colección con 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 obtener un ejemplo de cómo obtener una vista, vea Obtener la vista predeterminada de una colección de datos. Para obtener otro ejemplo, vea 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 obtener un ejemplo de cómo aplicar lógica de ordenación en lenguaje de marcado de aplicaciones extensibles (XAML), consulta Ordenar y agrupar datos mediante una vista en XAML.

Consulte también