Syncfusion SfDataGrid で編集する際にキーボードの種類(InputType)を変更する方法です。
※ この記事の投稿時点の SfDataGrid のバージョンは v15.2.0.46 です。
Editing 機能で Excel のセルのように編集できます。キーボードの種類を指定するには、カスタム GridCellTextViewRenderer
クラスを使います。
セルに入力できる値を制限をする場合、Column Types の GridNumericColumn 等も使えます。
public class GridCellTextViewRendererExt : GridCellTextViewRenderer { protected override void OnEnteredEditMode(DataColumnBase dataColumn, View currentRendererElement) { base.OnEnteredEditMode(dataColumn, currentRendererElement); // MappingName により分岐させる場合は次のように参照 if (dataColumn.GridColumn.MappingName != "ProductNo") return; // 行のデータにより分岐させる場合は次のように RowData を参照 // var item = dataColumn.RowData as MyViewModel; var editText = currentRendererElement as EditText; if (editText == null) return; // InputTypes を変更 editText.InputType = InputTypes.ClassNumber; } }
作成したカスタムレンダラーに差し替えます。
_dataGrid = new SfDataGrid(this); // Add custom renderer _dataGrid.CellRenderers.Remove("TextView"); _dataGrid.CellRenderers.Add("TextView", new GridCellTextViewRendererExt());