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();
}
}
|
|