0

我的项目使用 Prism 和 Unity 使用 MVVM 设计模式,基本上遵循 Brian Lagunas 著名的 Prism 视频,但视频没有提到如何创建/使用局部视图,用户控件用于其他用户控件。

我正在尝试创建可以在其他页面(用户控件)中重用的自定义局部视图(用户控件)。例如,一个视图包含一个“浏览”按钮,绑定 SelectFileCommand 并在完成后发布文件路径。如果我在一页中有两个这样的视图,我怎样才能订阅正确的命令?两个命令称为相同的名称。

对于使用局部视图:

在模块中注册视图类型,如下所示:

container.RegisterType<IPartialView, PartialView>();

并直接在页面中使用视图,如下所示:

<views:PartialView DataContext="{Binding PartialViewModel}" />

我不确定这是否是实现 Prism MVVM 模式的正确方法。请让我知道这是否是错误的想法,以及如何实现这些部分视图。

非常感谢。

4

1 回答 1

0

我不确定我是否了解您的需求,但我会尝试一下。

如果您的局部视图在另一个模块中,首先,您不能在同一模块之外的其他地方使用。您可以使用一些 IPartialView,但我不确定这里是否需要,Prism 提供了更简单的解决方案。

做我认为你想做的最简单的方法是拥有一个你想要拥有局部视图的区域。您将在模块定义中使用 RegisterViewWithRegion 来针对相应区域注册 PartialView。这样,如果你多次拥有这个局部视图,你就会有几个同名的区域,并且在模块中只有一个 PartialView 注册。只需为每个区域提供正确的 DataContext。

于 2013-05-17T11:57:05.750 回答