Xamarin.iOS のドキュメント
グループ化
コントロール > FlexGrid > 機能 > グループ化

FlexGrid は、CollectionView を使用したグループ化をサポートします。グループ化を有効にするには、GroupAsync メソッドを追加できます。 GroupAsyncメソッドを使用すると、指定したグループパスに従ってコレクションビューをグループ化できます。ユーザーは、グループ行内の任意の場所をタップすることで、FlexGrid 内のグループを展開または折りたたむことができます。

次の図は、これらのプロパティを設定した後の FlexGrid を示しています。

FlexGrid Grouping

次のコード例は、FlexGridにグループ化を設定する方法を示します。この例では、「クイックスタート」セクションで作成したサンプルを使用しています。

CS
コードのコピー
using C1.CollectionView;
using C1.iOS.Grid;

public partial class ViewController : UIViewController
{
    C1CollectionView<Customer> _collectionView;
    public ViewController(IntPtr handle) : base(handle)
    {

    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        var task = UpdateVideos();
    }

    private async Task UpdateVideos()
    {
        var data = Customer.GetCustomerList(100);
        _collectionView = new C1CollectionView<Customer>(data);
        await _collectionView.GroupAsync(c => c.Country);
        Grid.AutoGenerateColumns = false;
        Grid.Columns.Add(new GridColumn { Binding = "Active", Width = new GridLength(60) });
        Grid.Columns.Add(new GridColumn { Binding = "Name", Width = GridLength.Star });
        Grid.Columns.Add(new GridColumn { Binding = "OrderTotal", Width = new GridLength(110), Format = "C", Aggregate = GridAggregate.Sum, HorizontalAlignment = UIControlContentHorizontalAlignment.Right, HeaderHorizontalAlignment = UIControlContentHorizontalAlignment.Right });
        Grid.GroupHeaderFormat = Foundation.NSBundle.MainBundle.LocalizedString("{name}: {value} ({count} items)", "");
        Grid.ItemsSource = _collectionView;
    }
        
    partial void OnCollapseClicked(UIButton sender)
    {
        Grid.CollapseGroups();
    }
}