2015-09-10 45 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