作成日: 2017/09/05 最終更新日: 2017/09/05
文書種別
使用方法
詳細
FlexGridを利用して表示したデータグリッドは、セル内に表示したデータをセル内(インライン)で編集できます。
セルを編集モードにするためには、通常は対象セルをタップします。
簡単に編集モードに入ることを禁止する場合には、セルのタップ(CellTapped)およびダブルタップ(CellDoubleTapped)をキャンセルし、長押し(CellLongPressed)したときのみ編集モードを開始する方法があります。
以下のサンプルコードでは、セルをタップまたはダブルタップした場合には何も発生しませんが、長押しした場合に編集モードになりセル内容を変更できます。
また、セル以外のヘッダー部分は処理の対象外にしています。
サンプルコード
C#(Xamarin.Forms)
Studio for Xamarin > 製品ヘルプ > FlexGrid-機能-編集
セルを編集モードにするためには、通常は対象セルをタップします。
簡単に編集モードに入ることを禁止する場合には、セルのタップ(CellTapped)およびダブルタップ(CellDoubleTapped)をキャンセルし、長押し(CellLongPressed)したときのみ編集モードを開始する方法があります。
以下のサンプルコードでは、セルをタップまたはダブルタップした場合には何も発生しませんが、長押しした場合に編集モードになりセル内容を変更できます。
また、セル以外のヘッダー部分は処理の対象外にしています。
サンプルコード
C#(Xamarin.Forms)
public partial class C1_FlexGrid_LongPress : ContentPage
{
public C1_FlexGrid_LongPress()
{
InitializeComponent();
grid.ItemsSource = Customer.GetCustomerList(10);
// グリッドを編集可能状態
grid.IsReadOnly = false;
// 列ヘッダーのみ表示する
grid.HeadersVisibility = C1.Xamarin.Forms.Grid.GridHeadersVisibility.Column;
// セル単位に選択するモード
grid.SelectionMode = C1.Xamarin.Forms.Grid.GridSelectionMode.Cell;
// セルをタップおよびダブルタップした場合のイベントを設定
grid.CellDoubleTapped += Grid_CellTapped;
grid.CellTapped += Grid_CellTapped;
// セルを長押しした場合の処理
grid.CellLongPressed += (object sender, C1.Xamarin.Forms.Grid.GridCellRangeEventArgs e) =>
{
// 対象がセルであるかどうかの判断。ヘッダーの場合は対象外
if (e.CellType == C1.Xamarin.Forms.Grid.GridCellType.Cell)
{
// 対象のセルを編集モードにする
this.grid.StartEditing(e.CellRange.Row, e.CellRange.Column);
}
};
}
// セルをタップまたはダブルタップした場合のイベントハンドラ
void Grid_CellTapped(object sender, C1.Xamarin.Forms.Grid.GridCellRangeEventArgs e)
{
// 対象がセルであるかどうかの判断。ヘッダーの場合は対象外
if (e.CellType == C1.Xamarin.Forms.Grid.GridCellType.Cell)
{
// イベントをキャンセル
e.Cancel = true;
}
}
}
Studio for Xamarin > 製品ヘルプ > FlexGrid-機能-編集
旧文書番号
82327