次の方法で共有


CollectionViewSource クラス

定義

コレクション クラスにグループ化と現在の項目のサポートを追加するデータ ソースを提供します。

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 .../>
継承
Object Platform::Object IInspectable 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 アプリで を返しますnull。 代わりに DispatcherQueue を使用してください。

(継承元 DependencyObject)
DispatcherQueue

このオブジェクトが DispatcherQueue 関連付けられている を取得します。 は DispatcherQueue 、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の にアクセス DependencyObject できる機能を表します。

(継承元 DependencyObject)
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)

適用対象

こちらもご覧ください