2015-01-13 126 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的建議