MVVM中央应用程序逻辑

时间:2011-05-17 09:52:55

标签: c# wpf design-patterns mvvm

我在WPF中使用Simple MVVM Toolkit来创建应用程序,该应用程序使用中央选项卡控件,每个选项卡项都有一个View(UserControl)。这些视图还可能包含标签控件本身,其中包含更多“子视图”。

我们的困难在于找到一种共享应用程序逻辑的方法,这些逻辑被其中一些视图使用,而没有一个全局庞大的混乱类......

1 个答案:

答案 0 :(得分:2)

我不会选择一个容纳一切的庞大班级。但我会有一个控制整体状态的中央ViewModel。就像ShellViewModel一样。我会让viewmodels通过Messenger(MVVM Toolkit light)或EventAggregator(Prism)进行通信和交换信息。 他们提供了与发布/订阅者模式交换信息的方式。您可以通过实现自己的消息类并将有效负载与其一起传递来解决它们。

所以你可以拥有一个全局Message for Save all和每个(Sub-)ViewModel都可以注册到它并在收到消息后运行自己的save方法......

棱镜 http://msdn.microsoft.com/en-us/library/ff921122(v=pandp.20).aspx

MVVM灯 http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx

如果这有帮助,请告诉我......