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

Bu örnek, Extensible Application Markup Language (XAML) ' de bir veri koleksiyonunun bir görünümünün nasıl oluşturulacağını gösterir. Görünümler gruplandırma, sıralama, filtreleme ve geçerli bir öğenin kavramının işlevlerini sağlar.

Örnek

Aşağıdaki örnekte, yerleri adlı statik kaynak, her bir Yerleştir nesnesinin bir şehir adı ve eyalet olarak oluşturulduğu bir Yerleştir nesneleri koleksiyonu olarak tanımlanmıştır. Src ön eki, veri kaynağı yerlerinin tanımlandığı ad alanı ile eşleştirilir. SCM öneki ile ve dat Maps ile eşlenir .

Aşağıdaki örnek, şehir adına göre sıralanmış ve duruma göre gruplandırılan 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 daha sonra 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 kaynakta tanımlanan XML verilerine bağlamalar için XmlDataProvider , XML adından önce bir @ simgesiyle önüne geçin.

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