FlexGrid は、ICollectionView を使用したグループ化をサポートします。グループ化を有効にするには、GroupAsync メソッドを追加できます。 GroupAsyncメソッドを使用すると、指定したグループパスに従ってコレクションビューをグループ化できます。ユーザーは、グループ行内の任意の場所をタップすることで、FlexGrid 内のグループを展開または折りたたむことができます。
次の図は、これらのプロパティを設定した後の FlexGrid を示しています。
次のコード例は、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(); } } |