当前位置: 首页 > news >正文

DevExpress WPF中文教程:如何将GridControl的更改发布到数据库?

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

本教程演示如何在GridControl中编辑数据并将更改保存到数据库中,本教程以上一篇内容为基础(点击这里回顾>>)。

DevExpress WPF中文教程图集

获取DevExpress v24.1正式版下载(Q技术交流:532598169)

1. 设置TableView.ShowUpdateRowButtons属性为oncellleditoropen或OnCellValueChange,这将打开编辑模式,允许用户编辑整行,然后立即提交或取消所有更改。

2. DevExpress GridControl将更改保存在本地,而不将其发布到数据库。要将更改保存到数据库,请在视图模型中创建一个ValidateAndSave命令,该命令调用数据上下文的SaveChanges方法:

MainViewModel.cs

using DevExpress.Mvvm.DataAnnotations;
using DevExpress.Mvvm.Xpf;
// ...
public class ViewModel : ViewModelBase {
NorthwindEntities northwindDBContext;
// ...
[Command]
public void ValidateAndSave(RowValidationArgs args) {
northwindDBContext.SaveChanges();
}
}

MainViewModel.vb

Imports DevExpress.Mvvm.DataAnnotations
Imports DevExpress.Mvvm.Xpf
' ...
Public Class ViewModel
Inherits ViewModelBasePrivate northwindDBContext As NorthwindEntities
' ...
<Command>
Public Sub ValidateAndSave(ByVal args As RowValidationArgs)
northwindDBContext.SaveChanges()
End Sub
End Class

该命令是在运行时从带有command属性的方法生成的,生成的命令名遵循[MethodName]Command模式。

3. 将ValidateAndSave命令绑定到GridViewBase.ValidateRowCommand属性,DevExpress GridControl在用户点击Update按钮后执行这个命令:

MainView.xaml

<dxg:GridControl.View>
<dxg:TableView AutoWidth="True"
BestFitModeOnSourceChange="VisibleRows"
ShowUpdateRowButtons="OnCellEditorOpen"
ValidateRowCommand="{Binding ValidateAndSaveCommand}"/>
</dxg:GridControl.View>

您可以使用本教程中演示的方法来实现其他CRUD操作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 删除排序链表中的重复元素 II(LeetCode)
  • 详解基于百炼平台及函数计算快速上线网页AI助手
  • [Python] ai音色翻译器
  • 安全基础学习-keil调试汇编代码
  • Linux 内核源码分析---块设备
  • C# 设计模式之简单工厂模式
  • GoLang 安装
  • 导出easyExcel(前端vue2/后端springboot)
  • Java 面试常见问题之——为什么重写equals时必须重写hashCode方法
  • thinkphp框架远程代码执行
  • MATLAB在算法处理上的作用
  • 鸿蒙系统学习指南
  • 学习大数据DAY30 python基础语法3
  • 渗透测试--DNS劫持实验
  • 5.0-软件工程基础知识-考点分析
  • hexo+github搭建个人博客
  • [译]如何构建服务器端web组件,为何要构建?
  • HTTP那些事
  • Java精华积累:初学者都应该搞懂的问题
  • Linux各目录及每个目录的详细介绍
  • nginx 负载服务器优化
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue 配置sass、scss全局变量
  • Vue 重置组件到初始状态
  • vue学习系列(二)vue-cli
  • 不上全站https的网站你们就等着被恶心死吧
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初识 webpack
  • 后端_MYSQL
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 漂亮刷新控件-iOS
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 入口文件开始,分析Vue源码实现
  • 思维导图—你不知道的JavaScript中卷
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 问题之ssh中Host key verification failed的解决
  • 用简单代码看卷积组块发展
  • 鱼骨图 - 如何绘制?
  • ionic入门之数据绑定显示-1
  • python最赚钱的4个方向,你最心动的是哪个?
  • 我们雇佣了一只大猴子...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​ssh免密码登录设置及问题总结
  • ​香农与信息论三大定律
  • (1)(1.13) SiK无线电高级配置(六)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (力扣)循环队列的实现与详解(C语言)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (十) 初识 Docker file
  • (四)进入MySQL 【事务】
  • (一) 初入MySQL 【认识和部署】
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级