WinForm开发-界面控件到实体,实体到界面控件自动绑定

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/51488947   在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/51488947

  在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦。有没有像Web中那样方便的方法直接就自动映射了呢?现在不用如此繁琐,在RDIFramework.NET开发框架的WinForm部分新增了界面控件到实体,实体到界面控件自动绑定,一句话就搞定了,非常的方便。主要是引“RDIFramework.WinForm.Utilities.dll”dll文件,再调用下面两个方法即可:

  1、实体到界面控件的自动映射:FormBinding.BindObjectToControls(TestEntity, this);

  2、界面控件到实体的自动映射:FormBinding.BindControlsToObject(TestEntity, this);

  效果如下图所示:

 

  下面给出上面的测试界面的全部代码供大家参考:

using System;
 
namespace RDIFramework.Test
{
    using RDIFramework.Utilities;
    using RDIFramework.WinForm.Utilities;
 
    public partial class FrmFormBindingTest : BaseForm
    {
        ExampleEntity TestEntity = new ExampleEntity();
 
        public FrmFormBindingTest()
        {
            InitializeComponent();
        }
 
        public override void FormOnLoad()
        {
            base.FormOnLoad();
            BindCategory();
            FormBinding.BindObjectToControls(TestEntity, this);
        }
 
        private void BindCategory()
        {
            BasePageLogic.BindCategory(base.UserInfo, ProductCategory, "ProductCategory");
            BasePageLogic.BindCategory(base.UserInfo, comboBox1, "Gender");
        }
 
        private void btnEntityToControl_Click(object sender, EventArgs e)
        {
            FormBinding.BindObjectToControls(TestEntity, this);
        }
 
        private void btnControlToEntity_Click(object sender, EventArgs e)
        {
            FormBinding.BindControlsToObject(TestEntity, this);
            this.richTextBox1.Text = TestEntity.ToString();
        }
 
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
 
    public class ExampleEntity
    {
        public string Text1 { get; set; }
 
        public string Text2 { get; set; }
 
        public string comboBox1 { get; set; }
 
        public string ProductCategory { get; set; }
 
        public DateTime? DateTime1 { get; set; }
 
        public decimal? MaskText1 { get; set; }
 
        public int? Int1 { get; set; }
 
        public int Enabled1 { get; set; }
 
        public ExampleEntity() {
            Text1 = "ValueText1";
            Text2 = "ValueText2";
            DateTime1 = BusinessLogic.ConvertToDateTime(DateTime.Now.AddDays(-2));
            MaskText1 = BusinessLogic.ConvertToNullableDecimal(12345.12);
            Int1 = 124;
            Enabled1 = 1;
            comboBox1 = "男";
            ProductCategory = "其他";
        }
 
        public override string ToString()
        {
            string returnValue = "Text1: " + Text1 + "\r Text2: " + Text2;
            returnValue += "\r comboBox1:" + comboBox1 + "\r Int1:" + Int1.ToString() + "\r DateTime1:" + DateTime1.ToString() ;
            returnValue += "\r ProductCategory:" + ProductCategory + "\r MaskText1:" + MaskText1.ToString() + "\r Enabled1:" + Enabled1.ToString();
            return returnValue.ToString();
        }
    }
}


  相关文章列表:

   RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录


  一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

      RDIFramework.NET官方网站:http://www.rdiframework.net/

      RDIFramework.NET官方博客:http://blog.rdiframework.net/

      同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏!

      RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用! 

 欢迎关注RDIFramework.NET框架官方公众微信(微信号:guosisoft),及时了解最新动态。

   扫描二维码立即关注

 


相关文章
|
存储
ASCII码可以表示汉字吗?
ASCII码可以表示汉字吗?
4448 0
|
2天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
3天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产
|
4天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
520 1
kde
|
4天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
352 3
|
2天前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
708 4
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
|
2天前
|
JavaScript 开发工具 Android开发
如何在原生 App 中调用 Uniapp 的页面?
如何在原生 App 中调用 Uniapp 的页面?
240 138