방법: 뷰의 데이터 정렬
이 예제에서는 뷰에서 데이터를 정렬하는 방법을 설명합니다.
예제
다음 예제에서는 간단한 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에 추가하면 항목이 ListBox의 ItemCollection에 추가되며 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에서 뷰를 사용하여 데이터 정렬 및 그룹화를 참조하십시오.