我正在使用棱镜。 我在父视图中有一个tabcontrol。我的标签控件中有两个标签。每个选项卡都有不同的视图。每个选项卡都有一个按钮,可能会或可能不会(取决于某些内部逻辑)导致tabcontrol切换到不同的选项卡。设置这样的架构的最佳做法是什么?
我反对使用EventAggregator,因为我认为它很草率,很容易被误用。 还有另一种方法吗?我应该使用RoutedCommand还是事件?
我也将在标签之间共享信息,但我希望它们松散耦合并具有不同的ViewModel。有任何想法,建议或批评吗?
谢谢! 布雷特
答案 0 :(得分:4)
我在一段时间后写了一篇博客文章,概述了儿童对父母ViewModel通信的一些选项。可能会给你一些想法。
答案 1 :(得分:1)
我的第一个偏好通常是让子视图模型引发一个事件,并让父项在创建子项时设置其处理程序。
但是有很多方法可以做这种事情。例如,如果所有制表符切换逻辑都存在于父节点中,则可以在父节点上创建命令,并使用AncestorType
绑定将按钮绑定到该节点。然后,您根本不必触摸子视图模型。