Show / Hide Table of Contents

Практическое руководство. Сортировка и группировка данных с помощью представления в XAML

В этом примере показано, как создать представление для сбора данных в XAML. Представления предоставляют функциональные возможности группирования, сортировки, фильтрации и понятие текущего элемента.

Пример

В следующем примере статический ресурс с именем помещает определен как коллекция месте объектов, в котором каждый месте объект состоит из название города и состояние. Префикс src пространство имен, где источник данных местах определен. Префикс scm сопоставляется "clr-namespace:System.ComponentModel;assembly=WindowsBase" и dat сопоставляется "clr-namespace:System.Windows.Data;assembly=PresentationFramework".

В следующем примере создается представление коллекции данных, сгруппированных по состоянию и отсортированы по названию города.

<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>

Представление может быть источником привязки, как показано в следующем примере:

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

Для привязки к данным XML, определенные в XmlDataProvider ресурсов, укажите перед именем XML символ @.

<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>

См. также

  • CollectionViewSource
  • Получение представления по умолчанию для коллекции данных
  • Общие сведения о привязке данных
  • Практические руководства
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX