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