1

我正在使用棱镜。我的父视图中有一个选项卡控件。我的选项卡控件中有两个选项卡。每个选项卡都有不同的视图。每个选项卡都有一个按钮,该按钮可能会或可能不会(取决于某些内部逻辑)导致选项卡控件切换到不同的选项卡。建立这样的架构的最佳实践是什么?

我反对使用 EventAggregator,因为我认为它草率且容易被误用。还有另一种方法可以做到这一点吗?我应该使用 RoutedCommand 还是事件?

我还将在选项卡之间共享信息,但我希望它们松散耦合并具有不同的 ViewModel。有什么想法、建议或批评吗?

谢谢!布雷特

4

2 回答 2

4

不久前,我写了一篇博文,概述了子与父 ViewModel 通信的一些选项。可能会给你一些想法。

嵌套视图模型

于 2011-02-04T02:39:08.843 回答
1

通常,我的第一个偏好是让子视图模型引发一个事件,并让父视图模型在创建子视图时设置其处理程序。

但是有很多方法可以做这种事情。例如,如果所有选项卡切换逻辑都存在于父级中,您可以在父级上创建一个命令并使用绑定将按钮绑定到它AncestorType。然后您根本不必触摸子视图模型。

于 2011-02-04T04:34:47.693 回答