这个教程示范如何使用GridControl编辑数据,和保存更改到数据库。这个教程基于前一个篇。
Items Source Wizard 当 CRUD (Create, Read, Update, Delete) 启动选项时添加Post data功能
Items Source Wizard 生成如下代码:
1、设置 TableView.ShowUpdateRowButtons 选项到OnCellEditorOpen。这个选项启动一个编辑模式允许用户 edit an entire row 和提交和更改所有的变更:
2、设置 TableView.NewItemRowPosition 属性到Top。 这个 New Item Row 允许用户添加新行到 GridControl:
3、创建如下命令在运行时生成,从方法和 Command 属性。 从 [MethodName]Command 生成命令名称。
ValidateRow 命令添加新列和保存变更到数据库:
[Command]
public void ValidateRow(RowValidationArgs args) {var item = (Order)args.Item;if (args.IsNewItem)_Context.Orders.Add(item);_Context.SaveChanges();
}
从数据库这个 ValidateRowDeletion 命令移除其他内容
[Command]
public void ValidateRowDeletion(ValidateRowDeletionArgs args) {var item = (Order)args.Items.Single();_Context.Orders.Remove(item);_Context.SaveChanges();
}
DataSourceRefresh 命令拉取更改,从数据库更改grid 内容
[Command]
public void DataSourceRefresh(DataSourceRefreshArgs args) {_ItemsSource = null;_Context = null;RaisePropertyChanged(nameof(ItemsSource));
}
TableView 属性束缚和生成命令:
<dxg:GridControl x:Name="grid" ItemsSource="{Binding Orders}"><!-- ... --><dxg:GridControl.View><dxg:TableView NewItemRowPosition="Top"ShowUpdateRowButtons="OnCellEditorOpen"ValidateRowCommand="{Binding ValidateRowCommand}"ValidateRowDeletionCommand="{Binding ValidateRowDeletionCommand}"DataSourceRefreshCommand="{Binding DataSourceRefreshCommand}"/></dxg:GridControl.View>
</dxg:GridControl>
从GridControl Delete 按键移除选择的列:
<dxg:GridControl.InputBindings><KeyBinding Command="{Binding View.Commands.DeleteFocusedRow, ElementName=grid}" Key="Delete"/>
</dxg:GridControl.InputBindings>