2015-01-13 89 views
0

我正在构建一个系统,在主窗体上有一个数据表,当用户插入或删除某些内容时必须更新该数据表。一旦有完成这些任务的特定表单,当对话框表单上的CRUD操作成功终止时,主表单的数据表就会被更新。问题是,无论何时我必须添加其他对数据进行更改的表单,我必须在对话框窗体上创建一个具有相同意图的事件,并将其分配给填充数据表的方法,违反了开放式关闭原则。这里有一个例子:打开关闭事件原理

创建更新产品对话框窗体上的事件:

public static event Action OnUpdateProduct 

创建新产品对话框窗体上的事件:

public static event Action OnUpdateProduct 

分配给FrmNewProduct.OnUpdateProduct事件主要形式:

FrmNewProduct.OnUpdateProduct += FillDataTable; 

分配给FrmUpdateProduct.OnUpdat eProduct事件的主要形式有:

FrmUpdateProduct.OnUpdateProduct += FillDataTable; 

我怎样做才能分离的主要形式,以解决这一问题?

+0

是这个功课? –

回答

0

考虑使用OnUpdateProduct和TriggerUpdateProduct()配套函数构建全局单例EventDispatcher类。在主要形式中,您可以附加到一个事件,并且可以从多个其他表单中将其解锁。

您需要的仅仅是事件触发器与其订阅之间的分离。我的例子只是一个简单的方法来做到这一点,你可能会考虑其他方法,如zmechanic的建议