AutoControlMapper 基于.net 的一个WinForm自动更新和读取类

原创 2017年11月09日 15:57:16

使用AutoControlMapper进行控件信息的自动映射和读取

AutoControlMapper 一个通过Contorl.Tag属性,将变量值与控件自动映射的工具类,使用起来也非常简单。


AutoControlMapper介绍

总述

  在使用Winform开发的时候,你是否为将对象信息更新到Winform和从Winform中更新到对象而苦恼。
  如下图,当一个对象有多个属性都需要更新到UI和从UI读取更新到对象时,总是需要重复的编写这部分代码。
有多个控件需要更新
  而现在你不需要了,比如,我想将一个Person类的属性更新到界面,你所需要的就是为每一个需要展示的控件设置它的.Tag属性,比如tb_name.Tag="Name";,而数据更新,就交给AutoControlMapper就可以了。

AutoControlMapper总共仅有3个函数

C#
//注册待更新到控件的变量
public void RegisterVariableObject(string objName, object obj);
//将对象内容更新到UI
public void UpdateToUI(Control ctl_in);
//从UI将内容更新到对象
public void UpdateFromUI( Control ctl_in);

使用示例

Form frm = new Control();
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, obj);//注册变量
_acm.UpdateToUI(frm );//更新到控件
_acm.UpdateFromUI(frm );//更新到变量

具体步骤

我们假设有一个窗体控件

Form frm_main;
|-TextBox tb_name;
|-TextBox tb_age;

和一个待显示的变量

Person person;
|-string Name;
|-string Age;

  1. 修改控件的Tag属性
tb_name.Tag= "Name";//指向person.Name
tb_age.Tag= "Age";//指向person.Age

2.编辑代码

//更新变量到控件
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, person);//注册 person
_acm.UpdateToUI(frm_main);//导入frm_main,他会将变量的值更新到frm_main下面的所有控件(不包括它自身)
//更新控件到变量
AutoControlMapper _acm = new AutoControlMapper();//实例化对象
_acm.RegisterVariableObject(null, person);//注册 person
_acm.UpdateFromUI(frm_main);//导入frm_main,他会更新frm_main下面的所有控件的值到已注册的变量(不包括它自身)

项目的Git地址

–>点此访问AutoControlMapper的Git地址

注意事项

1.这个版本暂时只支持同一个属性的单次注册,如果同一个属性,多次注册,则会报错。
2.当变量的值改变时,需要重新注册,控件的值不会自动更新;所以推荐每次更新控件的时候,都重新注册变量。

相关文章推荐

.Net Winfrom 自动更新

  • 2017年08月11日 18:07
  • 698KB
  • 下载

ADO.NET Entity Framework 4.3 之 Code First 下自动更新数据库结构(Automatic Migrations)

介绍 ADO.NET Entity Framework 4.3 的新特性:Code First 下自动更新数据库结构(Automatic Migrations) 示例 Web.confi...
  • educast
  • educast
  • 2012年06月26日 11:43
  • 2314

VB.net(VB2010)自动更新程序

  • 2014年02月19日 09:49
  • 522KB
  • 下载

.NET实现之(自动更新)

做开发的人,尤其是做客户端(C/S)系统开发的人都会遇到一个头疼的问题,就是软件的自动更新;系统发布后怎样自动的更新程序,在下有幸开发过一个自动更新程序,更新程序与任何宿主程序是完全独立的;只要在主程...

ASP.NET GridView自动更新操作的常见错误

GridView的RowDeleting、RowUpdating和RowCommand事件 GridView的RowDeleting、RowUpdating和RowCommand事件   20...

实现.NET应用程序的自动更新

实现.NET应用程序的自动更新 应用程序更新的方法一般有两种:一是通知用户(比如发E-mail),让用户到指定的网站地址下载更新的程序;二是将更新的职责从用户那边转移到应用程序自身,由应用程序自...
  • wxzyq
  • wxzyq
  • 2011年08月27日 15:59
  • 400

vb.net 自动更新

  • 2009年07月21日 19:53
  • 232KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AutoControlMapper 基于.net 的一个WinForm自动更新和读取类
举报原因:
原因补充:

(最多只允许输入30个字)