Basic Library for UWP
コントロールのグループ化
Basic Library for UWP > CollectionView for UWP > C1CollectionView の使い方 > コントロールのグループ化

C1CollectionView では、GroupDescriptions プロパティを使用してコレクションを特定のプロパティでグループ化できます。

たとえば、コレクションを "Country" プロパティでグループ化するには次のようにします。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim list = New System.Collections.ObjectModel.ObservableCollection(Of Customer)()
' リストから C1CollectionView を作成します
_view = New C1.Xaml.C1CollectionView(list)
'  顧客を国別にグループ化します
_view.GroupDescriptions.Add(New C1.Xaml.PropertyGroupDescription("Country"))

C#コードの書き方

C#
コードのコピー
var list = new System.Collections.ObjectModel.ObservableCollection<Customer>();
// リストから C1CollectionView を作成します
_view = new C1.Xaml.C1CollectionView(list);
// 顧客を国別にグループ化します
_view.GroupDescriptions.Add(new C1.Xaml.PropertyGroupDescription("Country"));

メモ: コレクションが INotifyCollectionChanged を実装している場合は、グループ化の設定後であっても、データに加えられた変更がすべてグループ化に適用されます。

C1FlexGrid コントロールは、C1CollectionView に基づくグループ化をサポートします。他のコントロールを使用してグループ化を行う場合は、各グループの外観を制御する GroupStyle を定義する必要があります。

次に、標準の ListBox コントロールに対して定義された GroupStyle の例を示します。


コードのコピー
<ListBox
    Name="_listBox"
    ItemsSource="{Binding Customers}">
    <ListBox.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}" />
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
        </GroupStyle>
    </ListBox.GroupStyle>
</ListBox>
関連トピック