作成日: 2017/09/08 最終更新日: 2017/09/08
文書種別
使用方法
詳細
FlexGridのセルをタップした場合、CellTappedイベントが発生します。
このイベントはGridCellRangeEventArgs型の引数を受け取ります。
この引数を利用して、以下の情報が取得可能です。
CellRange:タップされたセルの範囲を取得できるGridCellRangeクラス
CellType:セルのタイプを取得するプロパティ
CellRangeを利用して、タップされたセルの位置で判断することも可能ですが、CellTypeプロパティには、セルの属性を表す値が格納されています。
このCellTypeプロパティの内容を、GridCellType列挙体を利用して対象のセルが以下のどのタイプであるかを判断できます。
CellTappedイベントの中で、CellTypeを判断すればヘッダーがタップされた場合の処理を実行できます。
なお、規定の動作では、列ヘッダーをタップするとソート処理が実行されます。
サンプルコード
C#(Xamarin.Forms)
また、ヘッダーが表示されていない場合は上記の処理は実行されません。
Studio for Xamarin > 製品ヘルプ > FlexGrid
このイベントはGridCellRangeEventArgs型の引数を受け取ります。
この引数を利用して、以下の情報が取得可能です。
CellRange:タップされたセルの範囲を取得できるGridCellRangeクラス
CellType:セルのタイプを取得するプロパティ
CellRangeを利用して、タップされたセルの位置で判断することも可能ですが、CellTypeプロパティには、セルの属性を表す値が格納されています。
このCellTypeプロパティの内容を、GridCellType列挙体を利用して対象のセルが以下のどのタイプであるかを判断できます。
GridCellType.Cell // 通常のデータセル GridCellType.ColumnHeader // 列ヘッダーセル GridCellType.RowHeader // 行ヘッダーセル GridCellType.TopLeft // 左上セル(行ヘッダーと列ヘッダーの交差部分)
CellTappedイベントの中で、CellTypeを判断すればヘッダーがタップされた場合の処理を実行できます。
なお、規定の動作では、列ヘッダーをタップするとソート処理が実行されます。
サンプルコード
C#(Xamarin.Forms)
// CellTappedイベントの処理記述
grid.CellTapped += (object sender, C1.Xamarin.Forms.Grid.GridCellRangeEventArgs e) =>
{
// タップした場所のセルタイプで処理を分岐
switch (e.CellType)
{
case C1.Xamarin.Forms.Grid.GridCellType.Cell:
// データセルが表示されていない領域では処理をキャンセル
if (e.CellRange.Row >= 0 && e.CellRange.Column >= 0)
{
var celldata = grid.Cells[e.CellRange.Row, e.CellRange.Column].ToString();
DisplayAlert("タップ位置", "データセルの内容 : " + celldata, "OK");
}
else { e.Cancel = true; }
break;
case C1.Xamarin.Forms.Grid.GridCellType.ColumnHeader:
DisplayAlert("タップ位置", "列ヘッダー", "OK");
break;
case C1.Xamarin.Forms.Grid.GridCellType.RowHeader:
DisplayAlert("タップ位置", "行ヘッダー", "OK");
break;
case C1.Xamarin.Forms.Grid.GridCellType.TopLeft:
DisplayAlert("タップ位置", "左上隅", "OK");
break;
default:
break;
}
};
また、ヘッダーが表示されていない場合は上記の処理は実行されません。
Studio for Xamarin > 製品ヘルプ > FlexGrid
旧文書番号
82347