CollectionViewSource Kelas

Definisi

Menyediakan sumber data yang menambahkan pengelompokan dan dukungan item saat ini ke kelas pengumpulan.

public ref class CollectionViewSource sealed : DependencyObject
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CollectionViewSource final : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class CollectionViewSource final : DependencyObject
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CollectionViewSource : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class CollectionViewSource : DependencyObject
Public NotInheritable Class CollectionViewSource
Inherits DependencyObject
<CollectionViewSource .../>
Warisan
Object Platform::Object IInspectable DependencyObject CollectionViewSource
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Tip

Untuk informasi selengkapnya, panduan desain, dan contoh kode, lihat Pengikatan data secara mendalam.

Jika Anda telah menginstal aplikasi WinUI 2 Gallery , klik di sini untuk membuka aplikasi dan melihat contoh pengelompokan dengan SemanticZoom yang sedang beraksi.

Contoh kode berikut menunjukkan cara mengikat kontrol ListBox ke hasil kueri LINQ pengelompokan (kumpulan tim dikelompokkan menurut kota dan ditampilkan dengan nama kota sebagai header grup). Untuk daftar kode lengkap, lihat sampel pengikatan data XAML.

<Grid>

  <Grid.Resources>
    <CollectionViewSource x:Name="groupInfoCVS" IsSourceGrouped="true"/>
  </Grid.Resources>

  <ListBox x:Name="lbGroupInfoCVS" 
    ItemsSource="{Binding Source={StaticResource groupInfoCVS}}">

    <ListBox.GroupStyle>
      <GroupStyle>
        <GroupStyle.HeaderTemplate>
          <DataTemplate>

            <TextBlock Text="{Binding Key}"/>

          </DataTemplate>
        </GroupStyle.HeaderTemplate>
      </GroupStyle>
    </ListBox.GroupStyle>

    <ListBox.ItemTemplate>
      <DataTemplate>

        <Border Background="{Binding Color}" 
          Width="200" CornerRadius="10" HorizontalAlignment="Left">

          <TextBlock Text="{Binding Name}" 
            Style="{StaticResource DescriptionTextStyle}" 
            HorizontalAlignment="Center" FontWeight="Bold"/>

        </Border>
      </DataTemplate>
    </ListBox.ItemTemplate>

  </ListBox>

</Grid>
Teams teams = new Teams();
var result = 
    from t in teams 
    group t by t.City into g 
    orderby g.Key 
    select g;
groupInfoCVS.Source = result;

Untuk contoh yang lebih rinci, lihat sampel pengikatan data XAML.

Keterangan

Gunakan CollectionViewSource saat Anda ingin mengikat kontrol daftar ke koleksi, tetapi Anda ingin menampilkan koleksi tersebut dalam grup dan mempertahankan item saat ini yang independen dari kontrol daftar. Ini sangat berguna ketika Anda ingin mengikat beberapa kontrol ke koleksi yang sama dan Anda ingin item saat ini dalam satu kontrol mengubah item saat ini di kontrol terikat lainnya. Anda biasanya mendefinisikan CollectionViewSource sebagai sumber daya XAML dan mengikatnya menggunakan ekstensi markup {StaticResource}. Anda kemudian dapat mengatur properti Sumbernya di code-behind ke jenis koleksi yang didukung.

Kontrol apa pun yang Anda ikat ke CollectionViewSource yang sama akan selalu memiliki item saat ini yang sama. Anda dapat mengakses item saat ini secara terprogram melalui properti ICollectionView.CurrentItem dari nilai properti CollectionViewSource.View .

Jika item dalam koleksi adalah koleksi itu sendiri, atau merupakan objek yang berisi koleksi, Anda dapat menampilkan koleksi sebagai grup dalam koleksi yang lebih besar. Untuk melakukan ini, atur properti IsSourceGrouped ke true. Jika item berisi koleksi tetapi bukan koleksi itu sendiri, Anda juga harus mengatur properti ItemsPath ke nama properti koleksi.

Catatan

Mengatur properti Sumber ke instans CollectionViewSource lain tidak didukung.

Konstruktor

CollectionViewSource()

Menginisialisasi instans baru kelas CollectionViewSource .

Properti

Dispatcher

Mendapatkan CoreDispatcher yang dikaitkan dengan objek ini. CoreDispatcher mewakili fasilitas yang dapat mengakses DependencyObject pada utas UI meskipun kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)
IsSourceGrouped

Mendapatkan atau menetapkan nilai yang menunjukkan apakah data sumber dikelompokkan.

IsSourceGroupedProperty

Mengidentifikasi properti dependensi IsSourceGrouped .

ItemsPath

Mendapatkan atau mengatur jalur properti untuk diikuti dari item tingkat atas untuk menemukan grup dalam CollectionViewSource.

ItemsPathProperty

Mengidentifikasi properti dependensi ItemsPath .

Source

Mendapatkan atau mengatur objek koleksi untuk membuat tampilan ini.

SourceProperty

Mengidentifikasi properti Dependensi sumber .

View

Mendapatkan objek tampilan yang saat ini terkait dengan instans CollectionViewSource ini.

ViewProperty

Mengidentifikasi properti Lihat dependensi.

Metode

ClearValue(DependencyProperty)

Menghapus nilai lokal properti dependensi.

(Diperoleh dari DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Mengembalikan nilai dasar apa pun yang ditetapkan untuk properti dependensi, yang akan berlaku dalam kasus di mana animasi tidak aktif.

(Diperoleh dari DependencyObject)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini dari DependencyObject.

(Diperoleh dari DependencyObject)
ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika nilai lokal ditetapkan.

(Diperoleh dari DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Mendaftarkan fungsi pemberitahuan untuk mendengarkan perubahan pada DependencyProperty tertentu pada instans DependencyObject ini.

(Diperoleh dari DependencyObject)
SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi pada DependencyObject.

(Diperoleh dari DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Membatalkan pemberitahuan perubahan yang sebelumnya terdaftar dengan memanggil RegisterPropertyChangedCallback.

(Diperoleh dari DependencyObject)

Berlaku untuk

Lihat juga