Практическое руководство. Сортировка данных в представлении
В этом примере описана сортировка данных в представлении.
Пример
В следующем примере создаются простой ListBox и 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>
Обработчик событий Click кнопки содержит логику для сортировки элементов в ListBox в порядке убывания. Это возможно, так как при таком добавлении элементов в ListBox они добавляются в ItemCollection объекта ListBox, а ItemCollection является производным от класса CollectionView. При привязке ListBox к коллекции с помощью свойства ItemsSource можно использовать ту же методику сортировки.
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
Если у вас есть ссылка на объект представления, можно использовать ту же методику для сортировки содержимого других представлений коллекции. Пример получения представления см. в статье Получение представления по умолчанию для коллекции данных. Еще один пример см. в статье Сортировка столбцов GridView при нажатии на заголовок. Дополнительные сведения о представлениях см. в разделе "Привязка к коллекциям" статьи Общие сведения о привязке данных.
Пример применения логики сортировки в языке XAML см. в статье Сортировка и группировка данных с помощью представления в XAML.
См. также
.NET Desktop feedback