Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从业务对象接收事件_.net_Winforms_User Interface_Design Patterns_Business Logic - Fatal编程技术网

.net 从业务对象接收事件

.net 从业务对象接收事件,.net,winforms,user-interface,design-patterns,business-logic,.net,Winforms,User Interface,Design Patterns,Business Logic,即使引用已更改,如何保持接收事件 在一个项目中,我在BO业务对象和GUI之间有以下关系 例如,g可以用时间线表示图形,C表示时间线曲线,p表示该曲线的点,T表示每个点的时间 每个GUI对象都与相应的对象相关联。 当T更改时,GUI P捕获更改的事件并更改其位置 因此,当G应该被修改时,它会在内部修改它的对象,结果T改变,p移动,GuiG在视觉上改变,一切都正常 但是这种建筑有一个不方便的地方。。。不应重新创建BO,因为这将破坏BO和GUI之间的链接 特别是,guip应该始终具有相同的T引用 如

即使引用已更改,如何保持接收事件

在一个项目中,我在BO业务对象和GUI之间有以下关系

例如,g可以用时间线表示图形,C表示时间线曲线,p表示该曲线的点,T表示每个点的时间

每个GUI对象都与相应的对象相关联。 当T更改时,GUI P捕获更改的事件并更改其位置

因此,当G应该被修改时,它会在内部修改它的对象,结果T改变,p移动,GuiG在视觉上改变,一切都正常

但是这种建筑有一个不方便的地方。。。不应重新创建BO,因为这将破坏BO和GUI之间的链接

特别是,guip应该始终具有相同的T引用

如果在一个业务逻辑中,例如P1.T=new ttthis.T+10 GUI_P1将不再移动,因为它等待来自前P1.T对象引用的事件,该对象不再属于P1

因此,解决方案是始终修改现有对象,而不是重新创建它。但还有另一个不便之处:性能

假设我有一个准备就绪的newC对象,它应该替换旧的对象。我应该用newC中的P中的T替换为P中的T,而不是执行G1.C=newC

还有其他更好的方法吗