UI 与对象实体的通信

1 前面已经谈到UI通过对象属性的名称从对象中获取值,UI控件的值是在changed 事件后赋给对象。因为对象实体是已知的,UI控件的值对应的是对象的属性,所以根据对象中属性名称获取值是比较容易的。当然设置对象与获取对象的值,都在对象实体中有相应的方法。这个方法比较通用,现在有不少架构都这么写.下面两个方法都使用了反射对property进行读写.

 



2
新建,保存,刷新,取消

     在主窗口中应该可以看到 新建,保存,刷新,取消这几个BUTTONMediar.framework 把所有的对象看归纳成只有这几个操作,通过这几个操作来控制对象。这几个button的事件调用活动窗口中的相应方法,最后调用对应的对象中相关方法.

 

主窗体中   




 
所有的对象UI都继承一个基础窗体,下面的方法作为共用方法写在这个基础窗体中。mRootBizObject 为窗体中对应的对象实体。这里就讲的比较的粗枝大叶了,不然决对不是一个短短的文章可以写清楚的。

      

新建需要通过工厂中的 CreateBizObject方法,因为每个对象都需要包括一个工厂,就需要在新建的时候构造传入。对象新建可以在InitializeValues方法设对象default 值。

 

 

 

 

取消就把Original值覆盖到当前值.

    

Mediar.Framework—业务的实现2(UI 与对象实体的通信) public void CancelEdit()
Mediar.Framework—业务的实现2(UI 与对象实体的通信)

 

保存就把数据更新到数据库,然后再刷新当前的实体。也许有人要问:刚才保存的为什么要刷新呀?刷新目是把RecordVersion取出来,RecordVersiontimestamp类型,每更新一次数据库,该字段就是有一个新值。在更新数据库之前会和数据库中的值比较,这是防止两个人在同时修改一个对象时引发冲突。

    

 

Factory类中,就会调用数据层的更新方法。

  

Mediar.Framework—业务的实现2(UI 与对象实体的通信) public void Update(ref DataSet ds, string AssemblyName)
Mediar.Framework—业务的实现2(UI 与对象实体的通信)

刷新就是从数据库重取数据,然后更新对象属性的值。

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-01
  • 2021-07-20
  • 2022-12-23
  • 2021-06-12
  • 2021-08-24
  • 2022-12-23
猜你喜欢
  • 2021-08-25
  • 2022-02-21
  • 2022-01-03
  • 2021-09-20
  • 2021-05-29
  • 2021-05-28
  • 2021-05-25
相关资源
相似解决方案