【发布时间】:2014-07-11 16:01:48
【问题描述】:
我将尽力详细解释问题。
我正在使用 WPF、MVVM 和 PRISM。这是应用程序的结构:
CONTAINER
User control containing a toolbar
---------- LEFT PANE USER CONTROL
right pane
user control
----------
---------------------------------------------------------------
容器是一个外壳,它承载应用程序的外观。 Shell 还包含许多不同的用户控件,如用户用户控件、角色用户控件、类别用户控件。所有控件都折叠起来。
工具栏有保存、编辑、删除等选项。当用户从工具栏中选择 Edit 选项时,我使用 WPF 命令调用 ViewModel 上的 Edit 方法,如下所示:
private void Edit(UserViewModel userViewModel)
{
// load the edit page
}
toolbar.Datacontext 被动态设置为用户控件的数据上下文,它是一个视图模型。因此,相同的工具栏可以用于不同的上下文来调用不同视图模型上的命令。
此时我已经在 Edit 方法中获得了正确的 UserviewModel。这一切都很好!但现在!我需要更新详细信息窗格以反映 EditView。我怎样才能做到这一点?所有控件都嵌入在折叠的 Shell.xaml 文件中。此外,ViewModel 位于单独的程序集中,Shell 位于单独的程序集中。
这是我需要帮助的地方!因为(Shell 引用 ViewModel 程序集而不是相反)不知道 Shell 的 viewModel 怎么能将 EditView 注入 Shell 详细信息窗格。
【问题讨论】:
-
你如何将你的观点注入细节面板?通过数据模板,通过区域管理器,还是直接设置为详细信息面板的内容?如果您可以为容器发布基本的 xaml,将不胜感激。