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

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

注意:ユーザーは、グループ行をタップしてまたは展開/折りたたみアイコンを使用してグループを展開と折りたたむことができます。

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

FlexGrid Grouping

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

C#
コードのコピー
    public class MainActivity : Activity
    {
        public FlexGrid Grid;
        private C1CollectionView<Customer> _collectionView;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Main);

            Grid = FindViewById<FlexGrid>(Resource.Id.Grid);

            var btn = FindViewById<Button>(Resource.Id.button1);
            btn.Click += OnCollapseClicked;
            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.ShowOutlineBar = true;
            Grid.IsReadOnly = true;
            Grid.Columns.Add(new GridColumn { Binding = "Active", Width = new GridLength(TypedValue.ApplyDimension(ComplexUnitType.Dip, 60, Resources.DisplayMetrics)) });
            Grid.Columns.Add(new GridColumn { Binding = "Name", Width = GridLength.Star });
            Grid.Columns.Add(new GridColumn { Binding = "OrderTotal", Width = new GridLength(TypedValue.ApplyDimension(ComplexUnitType.Dip, 110, Resources.DisplayMetrics)), Format = "C", Aggregate = GridAggregate.Sum, HorizontalAlignment = Android.Views.GravityFlags.Right, HeaderHorizontalAlignment = Android.Views.GravityFlags.Right });
            Grid.GroupHeaderFormat = "{name}: {value} ({count} items)";
            Grid.ItemsSource = _collectionView;
        }

        public void OnCollapseClicked(object sender, EventArgs e)
        {
            Grid.CollapseGroups();
        }
    }