방법: 뷰의 데이터 정렬

이 예제에서는 뷰의 데이터를 정렬하는 방법을 설명합니다.

예제

다음 예제는 간단한 ListBoxButton을 만듭니다.

<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에 항목을 추가하면 항목이 ListBoxItemCollection에 추가되고 ItemCollectionCollectionView 클래스에서 파생되기 때문에 이 작업을 수행할 수 있습니다. ItemsSource 속성을 사용하여 ListBox을 수집에 바인딩하는 경우 동일한 기술을 사용하여 정렬할 수 있습니다.

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(Extensible Application Markup Language)에서 정렬 논리를 적용하는 방법의 예는 XAML에서 뷰를 사용하여 데이터 정렬 및 그룹화를 참조하세요.

참고 항목