【发布时间】:2012-02-20 07:42:07
【问题描述】:
我有一个应用程序,其中有一个主视图模型,其视图包含一个选项卡控件,其中每个选项卡都有自己的视图和视图模型(可能还有更多)。我相信这是一个很常见的设计。现在,我想通过从这些选项卡内的控件触发命令来打开新选项卡(通过实例化新视图模型并将它们添加到工作区集合中)。问题是命令是由控制选项卡的内部视图模型接收的,而不是控制选项卡控件的外部视图模型。这样做的最佳做法是什么?我能想到的所有解决方案都是一种“hacky”(为视图模型提供对其父视图模型的引用,从父视图订阅孩子的事件......)。我假设有一个很好的解决方案。
例如,在“实体列表”视图中,单击“新建”按钮或选择一行应该会打开另一个具有“实体详细信息”类型视图的选项卡。但是,该命令将由选项卡绑定到的“实体列表”视图的视图模型接收,而不是选项卡控件绑定到的“工作区列表”视图模型。
【问题讨论】: