一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-在UI中应用DataUIMapper组件...

系列回顾

      WinForm篇我用了一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印两篇文章实例演示了一个基于AgileEAS.NET实现一个简单的增加、删除、修改、查询与打印的典型的简单应用案例,这应该是一个典型的MIS系统的应用场景。

本文内容

      本文我将在WinForm篇前面两篇文章所介绍的案例基础上介绍字典编辑场景中应用DataUIMapper组件,有关于DataUIMapper组件的介绍请参考.NET快速开发实践之应用IExtenderProvider实现对象与UI控件的绑定一文。

代码改造

      在这里我也就不再介绍DataUIMapper组件的详细功能了,直接看看改造过程,我们先来看看原先的显示与写回代码:

 1       private   void  DataDisplay_Old(IProduct dict)
 2      {
 3           this .tbCode.Text  =  dict.Code;
 4           this .tbName.Text  =  dict.Name;
 5           this .tbSpec.Text  =  dict.Spec;
 6           this .tbUnit.Text  =  dict.Unit;
 7           this .tbDescription.Text  =  dict.Description;
 8           this .tbPYCode.Text  =  dict.PYCode;
 9      }
10 
11       private   void  WriteBack_Old(IProduct dict)
12      {
13          dict.Code  =   this .tbCode.Text;
14          dict.Name  =   this .tbName.Text;
15          dict.Spec  =   this .tbSpec.Text;
16          dict.Unit  =   this .tbUnit.Text;
17          dict.Description  =   this .tbDescription.Text;
18          dict.PYCode  =   this .tbPYCode.Text;
19      }

 

      原来的代码需要手工实现UI控件与数据对象的交互比如dict.Code = this.tbCode.Text这样的写法,那么换成DataUIMapper组件应该怎么做呢。

      首先在VS开发环境中把DataUIMapper组件添加到VS环境的工具箱,需要说明的是DataUIMapper组件由程序集EAS.Data.DataUIMapper.dll承载,然后向窗体ProductDictEditor拖放一个DataUIMapper组件,然后设定DataUIMapper组件的数据源属性:

image
      DataUIMapper组件可以通过BindingSource数据实现向数据对象的绑定,也就是可以属性窗口中很方便的设定数据源,当然,开发人员也可以通过其他方式设定数据源,比如可以通过修改ProductDictEditor.Designer.cs文件指定DataUIMapper组件的数据源对象:

 

1Z(IP{5}FVZ7ZLN${CFJ]TH

 

      虽然可以通过修改*.Designer.cs,但我还是建议通过GUI文件完成DataUIMapper组件的数据源设定,当完成DataUIMapper组件的数据源设定之后,我们就可以使用很方便的Data<==>UI绑定了,可以通过DataUIMapper组件的Mappings属性(集合)来配置数据对象与UI控件的交互关系:

image

 

 

      在属性设定界面上有一个选项,“常用/全部”,选择“常用”之后控件下拉列表中会把一些不常用的UI控件过虑,但如果使用了一些特殊控件,被考虑了你需要选择“全部”,则可以完成对UI中的所有控件进行设定。

      当我们完成绑定Data<==>UI绑定关系之后,我们只需要修改原先的数据显示与写回代码如下即可:

1       private   void  DataDisplay(IProduct dict)
2      {
3           this .dataUIMapper1.UpdateUI(dict);
4      }
5 
6       private   void  WriteBack(IProduct dict)
7      {
8           this .dataUIMapper1.UpdateObject(dict);
9      }

 

       今天的例子就到这儿,在UI编程中还会涉及到控件的焦点跳车、输入验证、输入法控件等一个辅助的扩展编程技术,在本系列中将不在详细讲述,有关于这些内容,请参考.NET快速开发实践中的IExtenderProvider扩展组件.NET快速开发实践之应用IExtenderProvider实现输入法自动切换.NET快速开发实践之应用IExtenderProvider实现控件焦点跳转等几篇文章。

      有关本例所涉及的数据表结构请参考基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义一文,有关数据对象模型定义文件、文档、DDL脚本请下载:http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本例完整代码下载:Product.Demo.rar

       

      最后,声明一句,不欢迎“巴克球”!我不想再说什么,别来凑热闹了。

 

链接

一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录

AgileEAS.NET平台开发指南-系列目录

AgileEAS.NET应用开发平台介绍-文章索引

AgileEAS.NET平台应用开发教程-案例计划

AgileEAS.NET官方网站

敏捷软件工程实验室

QQ群:116773358

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值