Share via


Como: Ordenar e Agrupar Dados usando um modo de exibição em XAML

Este exemplo mostra como criar um modo de exibição de uma coleção de dados no Extensible Application Markup Language (XAML). Modos de exibição permitem as funcionalidades de agrupamento, ordenação, filtragem e a noção de um item atual.

Exemplo

No exemplo a seguir, o recurso estático chamado places é definido como uma coleção de objetos Place, na qual cada objeto Place é consistido de um nome de cidade e o estado. O prefixo src é mapeado para o namespace onde a fonte de dados Places está definida. Os prefixos scm e dat são mapeados para os namespaces System.ComponentModel e System.Windows.Data, respectivamente.

O exemplo a seguir cria um modo de exibição da coleção de dados que é ordenada por nome de cidade e agrupada por estado.

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

O modo de exibição pode então ser uma fonte de ligação, como no exemplo a seguir:

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

Para ligações de dados XML definidos em um XmlDataProvider recurso, preceda o nome do XML com um símbolo @.

<XmlDataProvider x:Key="myTasks" XPath="Tasks/Task">
    <x:XData>
        <Tasks >
            <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>

Para ver o exemplo inteiro, por favor, consulte Classificação e Agrupamento dados no exemplo XAML.

Consulte também

Tarefas

Como: Obter o Modo de Exibição Padrão de uma Coleção de Dados

Conceitos

Revisão de Associação de Dados

Referência

CollectionViewSource

Outros recursos

Exemplos de ligação de dados

Data Binding How-to Topics