Nasıl yapılır: XAML İçerisinde bir Görüntü Kullanarak Verileri Sıralama ve Gruplandırma

Bu örnekte, Genişletilebilir Uygulama biçimlendirme dilinde (XAML) bir veri koleksiyonunun görünümünün nasıl oluşturulacağı gösterilmektedir. Görünümler, gruplandırma, sıralama, filtreleme ve geçerli bir öğeye ilişkin gösterim işlevlerine olanak sağlar.

Örnek

Aşağıdaki örnekte, places adlı statik kaynak, her Place nesnesinin bir şehir adından ve durumundan oluştuğu Yer nesneleri koleksiyonu olarak tanımlanır. src ön eki, Veri kaynağı Basamaklarının tanımlandığı ad alanına eşlenir. scm ön eki ile "clr-namespace:System.ComponentModel;assembly=WindowsBase" eşler ve dat ile eşler"clr-namespace:System.Windows.Data;assembly=PresentationFramework".

Aşağıdaki örnek, şehir adına göre sıralanmış ve eyalete göre gruplandırılmış veri koleksiyonunun bir görünümünü oluşturur.

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

Görünüm, aşağıdaki örnekte olduğu gibi bir bağlama kaynağı olabilir:

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

Bir XmlDataProvider kaynakta tanımlanan XML verilerine bağlamalar için, XML adının önüne @ simgesi ekleyin.

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

Ayrıca bkz.