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

使用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.当变量的值改变时,需要重新注册,控件的值不会自动更新;所以推荐每次更新控件的时候,都重新注册变量。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页