Gewusst wie: Sortieren und Gruppieren von Daten mit einer Ansicht in XAML

Aktualisiert: November 2007

In diesem Beispiel wird gezeigt, wie eine Ansicht einer Datenauflistung in Extensible Application Markup Language (XAML) erstellt wird. Ansichten unterstützen das Gruppieren, Sortieren, Filtern und das Konzept eines aktuellen Elements.

Beispiel

Im folgenden Beispiel wird die statische Ressource places als Auflistung von Place-Objekten definiert, in der jedes Place-Objekt aus dem Namen einer Stadt und dem Bundesstaat besteht. Dem Namespace, in dem die Datenquelle Places definiert ist, wird das Präfix src zugeordnet. Dem System.ComponentModel-Namespace bzw. dem System.Windows.Data-Namespace werden die Präfixe scm bzw. dat zugeordnet.

Im folgenden Beispiel wird veranschaulicht, wie eine Ansicht der Datenauflistung erstellt wird, die nach dem Namen der Stadt sortiert und nach dem Bundesstaat gruppiert wird.

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

Die Ansicht kann dann wie im folgenden Beispiel eine Bindungsquelle sein:

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

Für Bindungen an XML-Daten, die in einer XmlDataProvider-Ressource definiert wurden, stellen Sie dem XML-Namen ein @-Symbol voran.

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

Das vollständige Beispiel finden Sie unter Beispiel zum Sortieren und Gruppieren von Daten in XAML.

Siehe auch

Aufgaben

Gewusst wie: Abrufen der Standardansicht einer Datenauflistung

Konzepte

Übersicht über Datenbindung

Referenz

CollectionViewSource

Weitere Ressourcen

Beispiel zur Datenbindung

Gewusst-wie-Themen zur Datenbindung