방법: XAML에서 보기를 사용하여 데이터 정렬 및 그룹화How to: Sort and Group Data Using a View in XAML

이 예제에서 데이터 컬렉션의 뷰를 만드는 방법을 보여 줍니다 XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML)합니다.This example shows how to create a view of a data collection in XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML). 뷰 그룹화, 정렬, 필터링의 기능 및 현재 항목의 개념을 허용 합니다.Views allow for the functionalities of grouping, sorting, filtering, and the notion of a current item.

예제Example

다음 예제에서는 정적 리소스 이름이 배치 컬렉션으로 정의 됩니다 장소 개체를 각 위치 도시 이름으로 구성 된 개체 및 상태입니다.In the following example, the static resource named places is defined as a collection of Place objects, in which each Place object is consisted of a city name and the state. 접두사 src 네임 스페이스에 매핑되는 데이터 원본 자릿수 정의 됩니다.The prefix src is mapped to the namespace where the data source Places is defined. 접두사 scm 매핑됩니다 "clr-namespace:System.ComponentModel;assembly=WindowsBase" 하 고 dat 매핑됩니다 "clr-namespace:System.Windows.Data;assembly=PresentationFramework"합니다.The prefix scm maps to "clr-namespace:System.ComponentModel;assembly=WindowsBase" and dat maps to "clr-namespace:System.Windows.Data;assembly=PresentationFramework".

다음 예제에서는 도시 이름별으로 정렬 되 고 상태별으로 그룹화 된 데이터 컬렉션의 뷰를 만듭니다.The following example creates a view of the data collection that is sorted by the city name and grouped by the state.

<Window.Resources>

  <src:Places x:Key="places"/>

  <CollectionViewSource Source="{StaticResource places}" x:Key="cvs">
    <CollectionViewSource.SortDescriptions>
      <scm:SortDescription PropertyName="CityName"/>
    </CollectionViewSource.SortDescriptions>
    <CollectionViewSource.GroupDescriptions>
      <dat:PropertyGroupDescription PropertyName="State"/>
    </CollectionViewSource.GroupDescriptions>
  </CollectionViewSource>

뷰에는 바인딩 소스는 다음 예제와 같이 될 수 있습니다.The view can then be a binding source, as in the following example:

<ListBox ItemsSource="{Binding Source={StaticResource cvs}}"
         DisplayMemberPath="CityName" Name="lb">
  <ListBox.GroupStyle>
    <x:Static Member="GroupStyle.Default"/>
  </ListBox.GroupStyle>
</ListBox>

에 정의 된 XML 데이터에 대 한 바인딩의 XmlDataProvider 리소스를 사용 하 여 XML 이름 앞에 @ 기호.For bindings to XML data defined in an XmlDataProvider resource, precede the XML name with an @ symbol.

<XmlDataProvider x:Key="myTasks" XPath="Tasks/Task">
    <x:XData>
        <Tasks xmlns="">
            <Task Name="Groceries" Priority="2" Type="Home">
<CollectionViewSource x:Key="mySortedTasks"
                      Source="{StaticResource myTasks}">
    <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="@Priority" />
    </CollectionViewSource.SortDescriptions>
    <CollectionViewSource.GroupDescriptions>
        <dat:PropertyGroupDescription PropertyName="@Priority" />
    </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

참고자료See also