Partilhar via


Como: Classificar dados em um modo de exibição

Este exemplo descreve como classificar dados em um modo de exibição.

Exemplo

O exemplo a seguir cria um ListBox simples e um 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>

O manipulador de eventos Click do botão contém lógica para classificar os itens no ListBox na ordem decrescente. Você pode fazer isso porque adicionar itens a um ListBox dessa forma os adiciona ao ItemCollection do ListBoxe ItemCollection deriva da classe CollectionView. Se você estiver vinculando seu ListBox a uma coleção usando a propriedade ItemsSource, poderá usar a mesma técnica para classificar.

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

Contanto que tenha uma referência ao objeto de vista, poderá usar a mesma técnica para classificar o conteúdo de outras vistas de coleção. Para obter um exemplo de como obter uma vista, consulte Obter a Vista Padrão de uma Coleção de Dados. Para mais um exemplo, veja Classificar uma coluna de GridView quando um cabeçalho é clicado. Para obter mais informações sobre modos de exibição, consulte Vinculação a coleções no Visão geral da vinculação de dados.

Para obter um exemplo de como aplicar a lógica de classificação em Extensible Application Markup Language (XAML), consulte Classificar e agrupar dados usando um modo de exibição em XAML.

Ver também