CollectionViewSource Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CollectionViewSource : DependencyObject
Public NotInheritable Class CollectionViewSource
Inherits DependencyObject
<CollectionViewSource .../>
- Warisan
- Atribut
Contoh
Tip
Untuk informasi selengkapnya, panduan desain, dan contoh kode, lihat Zoom semantik.
Aplikasi WinUI 3 Gallery mencakup contoh interaktif sebagian besar kontrol, fitur, dan fungsi WinUI 3. Dapatkan aplikasi dari Microsoft Store atau dapatkan kode sumber di GitHub.
Contoh kode berikut menunjukkan cara mengikat kontrol ListBox ke hasil kueri LINQ pengelompokan. Dalam contoh ini, 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;
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 |
Selalu kembali |
DispatcherQueue |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk