Procedure: Gegevens sorteren en groeperen met behulp van een weergave in XAML
In dit voorbeeld ziet u hoe u een weergave van een gegevensverzameling maakt in Extensible Application Markup Language (XAML). Weergaven bieden de functionaliteiten van groeperen, sorteren, filteren en het begrip van een huidig item.
Voorbeeld
In het volgende voorbeeld wordt de statische resource met de naam plaatsen gedefinieerd als een verzameling van Place-objecten, waarin elk Place-object bestaat uit een plaatsnaam en de staat. Het voorvoegsel src- wordt toegewezen aan de naamruimte waarin de gegevensbron Locaties is gedefinieerd. Het voorvoegsel scm komt overeen met "clr-namespace:System.ComponentModel;assembly=WindowsBase"
en dat komt overeen met "clr-namespace:System.Windows.Data;assembly=PresentationFramework"
.
In het volgende voorbeeld wordt een weergave gemaakt van de gegevensverzameling die wordt gesorteerd op de plaatsnaam en gegroepeerd op de staat.
<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>
De weergave kan vervolgens een bindingsbron zijn, zoals in het volgende voorbeeld:
<ListBox ItemsSource="{Binding Source={StaticResource cvs}}"
DisplayMemberPath="CityName" Name="lb">
<ListBox.GroupStyle>
<x:Static Member="GroupStyle.Default"/>
</ListBox.GroupStyle>
</ListBox>
Voor bindingen met XML-gegevens die zijn gedefinieerd in een XmlDataProvider-resource, gaat u vooraf aan de XML-naam met een @-symbool.
<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>
Zie ook
.NET Desktop feedback