/// <summary>
/// 将绑定数据源和控件绑定
/// </summary>
/// <param name="ctl">控件</param>
/// <param name="propertyName">属性名称</param>
/// <param name="BindingSource">数据源</param>
/// <param name="fieldName">绑定字段</param>
public static void SetDataBinding(this System.Windows.Forms.Control ctl, string propertyName, object BindingSource, string fieldName)
{
if (ctl.DataBindings[propertyName] != null) { ctl.DataBindings.Remove(ctl.DataBindings[propertyName]); }
ctl.DataBindings.Add(propertyName, BindingSource, fieldName, true, DataSourceUpdateMode.OnPropertyChanged);
}
/// <summary>
/// 移除绑定属性
/// </summary>
/// <param name="ctl"></param>
/// <param name="propertyName"></param>
public static void RemoveDataBinding(this System.Windows.Forms.Control ctl, string propertyName)
{
if (ctl.DataBindings[propertyName] != null) { ctl.DataBindings.Remove(ctl.DataBindings[propertyName]); }
}

调用

ComboBox.SetDataBinding("Text", Models, "字段名称");

当修改了model 的时候再重新执行

ComboBox.SetDataBinding("Text", Models, "字段名称");

C# 在WinForm 中简单实现双向绑定 VM的更多相关文章

  1. JavaScript实现简单的双向绑定

    很多的前端框架都支持数据双向绑定了,最近正好在看双向绑定的实现,就用Javascript写了几个简单的例子. 几个例子中尝试使用了下面的方式实现双向绑定: 发布/订阅模式 属性劫持 脏数据检测 发布/ ...

  2. 如何在原生微信小程序中实现数据双向绑定

    官网:https://qiu8310.github.io/minapp/ 作者:Mora 在原生小程序开发中,数据流是单向的,无法双向绑定,但是要实现双向绑定的功能还是蛮简单的! 下文要讲的是小程序框 ...

  3. vue中的数据双向绑定

    学习的过程是漫长的,只有坚持不懈才能到达到自己的目标. 1.vue中数据的双向绑定采用的时候,数据劫持的模式.其实主要是用了Es5中的Object.defineProperty;来劫持每个属性的get ...

  4. ng1中 如何用双向绑定 实现单向绑定的初始时不显示双括号效果?

    ng1中 如何用双向绑定 实现单向绑定(ng-bind就可以不显示{{}})的初始时不显示双括号效果? AngularJS 实例 页面加载时防止应用闪烁: <div ng-app="& ...

  5. 最近老是有兄弟问我,Vue双向绑定的原理,以及简单的原生js写出来实现,我就来一个最简单的双向绑定,原生十行代码让你看懂原理

    废话不多说直接看效果图 代码很好理解,但是在看代码之前需要知道Vue双向绑定的原理其实就是基于Object.defineProperty 实现的双向绑定 官方传送门 这里我们用官方的话来说Object ...

  6. 深入学习AngularJS中数据的双向绑定机制

    来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...

  7. 利用设置新数据存储结构解决vue中折叠面板双向绑定index引起的问题

    问题背景是,在进行机器性能可视化的前端开发时,使用折叠面板将不同机器的性能图表画到不同的折叠面板上去.而机器的选择利用select下拉选项来筛选. 由于在折叠面板中,通过 如下v-model双向绑定了 ...

  8. Angular中父子组件双向绑定传值

    下面为大家展示一个较为简单的ng父子组件双向绑定传值,下面是父组件页面 这个页面的大概功能就是父组件(红色)通过输入框输入内容反映到子组件上进行展示,并且进行了投影, 子组件(橙黄色)通过Input输 ...

  9. Winfrom中数据的双向绑定(使用INotifyPropertyChanged)

    在WPF中新建项目是自动实现了INotifyPropertyChanged接口,用于数据绑定时非常的方便在winfrom中也可以实现INotifyPropertyChanged接口 将需要绑定的字段写 ...

  10. vue中v-model 数据双向绑定

    表单输入绑定 v-model 数据双向绑定,只能应用在input /textare /select <div id="app"> <input type=&quo ...

随机推荐

  1. Firebug Lite——在没有调试工具的浏览器(如IE6-7)中调试

    现在做前端的应该是蛮幸福的,现在主流的浏览器都自带了调试工具,如 Firefox Chrome IE8+ 等,方便了网页开发时的一些调试.但是类似IE6的调试还是非常的不方便.但是发现一个调试神器-- ...

  2. 如何开发 MCP 服务?保姆级教程!

    最近这段时间有个 AI 相关的概念特别火,叫 MCP,全称模型上下文协议(Model Context Protocol).这是由 Anthropic 推出的一项开放标准,目标是为大型语言模型和 AI ...

  3. shell子字符串截取

    http://c.biancheng.net/view/1120.html Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取. 从指定位置开始截取 这种方式需要 ...

  4. 工良出品 | 长文讲解 MCP 和案例实战

    作者:痴者工良 博客地址:https://www.whuanle.cn/ 示例项目地址:https://github.com/whuanle/mcpdemo 近期 MCP 协议越来越爆火,很多开发者都 ...

  5. (倍增)LCA学习笔记+做题记录

    LCA学习笔记 LCA指最长公共子序列,可以使用倍增的方法求解(复杂度较优) 步骤 (1) 预处理 a. 求深度: 对于每个结点 \(dfs\) 预处理出结点深度; b. 求倍增祖先: 计算出每个结点 ...

  6. Mybatis 框架课程第三天

    目录 1 Mybatis连接池与事务深入 1.1 Mybatis的连接池技术 1.1.1 Mybatis连接池的分类 1.1.2 Mybatis中数据源的配置 1.2 Mybatis 的事务控制 1. ...

  7. 【经验】you-get + ffmpeg|b站音频下载

    一.原理: you-get下载,ffmpeg音视频分离. 这两个都是命令行工具. you-get安装(无python环境请参考python详细安装教程): pip3 install --upgrade ...

  8. AI 在软件测试中的应用:2025 年趋势、工具及入门指南

    引言 人工智能 (AI) 正在深刻地重塑软件开发和质量保证 (QA) 的各个方面.尤其是在软件测试领域,AI 不再仅仅是未来愿景,而是当下正在发生的变革.据世界质量报告(2023-24)指出,高达 7 ...

  9. Axure RP Element UI 2和 Element UI Plus元件库

    基于ElementUI2.0及ElementUI Plus3.0二次创作的ElementUI 元件库.2个版本的原型图内容会有所不同,ElementUI Plus3.0的交互更加丰富和高级.你可以同时 ...

  10. React错误边界:原理、实现与应用

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...