CollectionViewSource クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクション クラスにグループ化と現在の項目のサポートを追加するデータ ソースを提供します。
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 .../>
- 継承
- 属性
例
ヒント
詳細、設計ガイダンス、およびコード例については、「 セマンティック ズーム」を参照してください。
WinUI 3 ギャラリー アプリには、ほとんどの WinUI 3 コントロールと機能の対話型の例が含まれています。 Microsoft Store からアプリを入手するか、GitHub でソース コードを取得します。
次のコード例では、 ListBox コントロールをグループ化 LINQ クエリの結果にバインドする方法を示します。 この例では、チームのコレクションが市区町村別にグループ化され、グループ ヘッダーとして市区町村名で表示されます。 完全なコード一覧については、 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;
注釈
CollectionViewSource は、リスト コントロールをコレクションにバインドするが、それらのコレクションをグループに表示し、リスト コントロールとは独立して現在の項目を維持する場合に使用します。 これは、複数のコントロールを同じコレクションにバインドし、あるコントロールの現在の項目で、他のバインドされたコントロールの現在の項目を変更する場合に特に便利です。 通常、CollectionViewSource を XAML リソースとして定義し、 {StaticResource} マークアップ拡張機能を使用してそれにバインドします。 その後、分離コードの Source プロパティを、サポートされているコレクション型に設定できます。
同じ CollectionViewSource にバインドするコントロールは、常に同じ現在の項目を持つことになります。 CollectionViewSource.View プロパティ値の ICollectionView.CurrentItem プロパティを使用して、現在のアイテムにプログラムでアクセスできます。
コレクション内の項目がコレクション自体であるか、コレクションを含むオブジェクトである場合は、より大きなコレクション内のグループとしてコレクションを表示できます。 これを行うには、 IsSourceGrouped プロパティを true に設定 します。 アイテムにコレクションが含まれているが、コレクション自体ではない場合は、 ItemsPath プロパティをコレクション プロパティの名前に設定する必要もあります。
注意
Source プロパティを別の CollectionViewSource インスタンスに設定することはサポートされていません。
コンストラクター
CollectionViewSource() |
CollectionViewSource クラスの新しいインスタンスを初期化します。 |
プロパティ
Dispatcher |
常に Windows アプリ SDK アプリで を返します |
DispatcherQueue |
このオブジェクトが |
IsSourceGrouped |
ソース データをグループ化するかどうかを示す値を取得または設定します。 |
IsSourceGroupedProperty |
IsSourceGrouped 依存関係プロパティを識別します。 |
ItemsPath |
CollectionViewSource 内のグループを検索するために、最上位項目から従うプロパティ パスを取得または設定します。 |
ItemsPathProperty |
ItemsPath 依存関係プロパティを識別します。 |
Source |
このビューの作成元のコレクション オブジェクトを取得または設定します。 |
SourceProperty |
Source 依存関係プロパティを識別 します 。 |
View |
CollectionViewSource のこのインスタンスに現在関連付けられているビュー オブジェクトを取得します。 |
ViewProperty |
View 依存関係プロパティを識別します。 |
メソッド
ClearValue(DependencyProperty) |
依存関係プロパティのローカル値をクリアします。 (継承元 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
依存関係プロパティに対して確立された基本値を返します。これは、アニメーションがアクティブでない場合に適用されます。 (継承元 DependencyObject) |
GetValue(DependencyProperty) |
DependencyObject から依存関係プロパティの現在の有効な値を返します。 (継承元 DependencyObject) |
ReadLocalValue(DependencyProperty) |
ローカル値が設定されている場合は、依存関係プロパティのローカル値を返します。 (継承元 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
この DependencyObject インスタンスの特定の DependencyProperty に対する変更をリッスンするための通知関数を登録します。 (継承元 DependencyObject) |
SetValue(DependencyProperty, Object) |
DependencyObject の依存関係プロパティのローカル値を設定します。 (継承元 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
RegisterPropertyChangedCallback を呼び出して以前に登録した変更通知を取り消します。 (継承元 DependencyObject) |