2015-09-10 46 views
0

在我的C#項目中,我有一個包含5個選項卡的標準表單。每個選項卡都提供控件以執行某些功能。我需要關於如何設計類的建議,以便我可以處理顯示選項卡和邏輯以在其中執行操作。我可以在這裏使用的任何特定的UI設計模式?UI設計和邏輯處理C#

問題是 1.當前所有事件都以主窗體訂閱。所以文件變得更加複雜。 2.同樣每次我們都必須檢查哪個標籤當前顯示的基礎上,我需要執行一些操作。這使得它更復雜。

所以,我主要是看這個用戶界面的事件&邏輯處理的好設計。 (注意我使用的不是WPF的標準控件)

+0

http://stackoverflow.com/questions/21089258/winforms-application-design可能會有所幫助 –

+0

創建5個用戶控件,將控件和事件放入其中。在每個選項卡上添加相應的用戶控件。 –

回答

1

您是否使用過PRISM?這可能有助於解決您的問題;它主要針對WPF,但您可以獲取源代碼並獲取EventAggregator源代碼。

使用EventAggregator將允許您基於類型發佈/訂閱事件;例如聲明事件,像這樣:

public class SomethingHappenedEvent : PubSubEvent<DataToSendType> 
{ 
} 

用戶可以監聽的方法,像這樣的活動你定義:

_eventAggregator.GetEvent<SomethingHappenedEvent>().Subscribe(OnSomethingHappened); 

public void OnSomethingHappened(DataToSendType data) 
{ 
    //process data 
} 

那麼當用戶需要做的是,你需要通知用戶的東西的,你的代碼可以將它發佈到所有用戶:

_eventAggregator.GetEvent<SomethingHappenedEvent>().Publish(data); 

然後,您可以移動的業務邏輯放到單獨的類,並使其可測試的UI之外;如果需要的話,它會自動遷移到MVVM。

完整文檔是here