如何:在视图中对数据进行排序

此示例介绍如何在视图中对数据进行排序。

示例

下面的示例创建一个简单的 ListBox 和一个 Button

<Window x:Class="ListBoxSort_snip.Window1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://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>

按钮的 Click 事件处理程序包含按降序顺序对 ListBox 中的项进行排序的逻辑。 之所以可以这样做是因为:按此方式向 ListBox 添加项时,会将这些项添加至 ListBoxItemCollection,并且 ItemCollection 是从 CollectionView 类派生的。 如果正在使用 ItemsSource 属性将 ListBox 绑定到集合,则可以使用同样的技术进行排序。

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

只要具有对视图对象的引用,就可以使用同样的技术对其他集合视图的内容进行排序。 有关如何获取视图的示例,请参见如何:获取数据集合的默认视图。 若要查看其他示例,请参见如何:在单击标题时对 GridView 列进行排序。 有关视图的更多信息,请参见数据绑定概述中的“绑定到集合”。

有关如何在Extensible Application Markup Language (XAML) 中应用排序逻辑的示例,请参见如何:在 XAML 中使用视图对数据进行排序和分组

请参见

任务

如何:在单击标题时对 GridView 列进行排序

如何:筛选视图中的数据

参考

CustomSort

概念

数据绑定概述

其他资源

数据绑定帮助主题