WPF Prism MVVM-相同“;带命令的局部视图";在一个页面中,如何订阅命令?

WPF Prism MVVM-相同“;带命令的局部视图";在一个页面中,如何订阅命令?,wpf,prism,unity-container,partial-views,delegatecommand,Wpf,Prism,Unity Container,Partial Views,Delegatecommand,我的项目使用MVVM设计模式,使用Prism和Unity,基本上遵循Brian Lagunas的著名Prism视频,但视频没有提到如何创建/使用部分视图,其他用户控件中使用的用户控件 我正在尝试创建可以在其他页面(用户控件)中重用的自定义局部视图(用户控件)。例如,视图包含“浏览”按钮绑定SelectFileCommand并在完成后发布文件路径。如果在一个页面中有两个视图,如何订阅正确的命令?两个命令调用相同的名称 要使用局部视图,请执行以下操作: 在模块中注册视图类型,如下所示: contai

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

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

要使用局部视图,请执行以下操作:

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

container.RegisterType<IPartialView, PartialView>();
<views:PartialView DataContext="{Binding PartialViewModel}" />
container.RegisterType();
并在页面中直接使用视图,如下所示:

container.RegisterType<IPartialView, PartialView>();
<views:PartialView DataContext="{Binding PartialViewModel}" />

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


非常感谢

我不确定我是否了解您需要什么,但我会试试看

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

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

嗨,我想找的是,我有一个具有类似命令操作的视图,我想创建一个或两个局部视图来替换所有命令操作,因此所有局部视图都将位于同一个模块中。每个局部视图都将返回一个结果对象,例如,一个浏览按钮,我可以在视图中放置2个或3个,每个都返回一个文件路径。因此,如果视图有一个命令,并发布相同的结果,当我在一个主视图中有多个命令时,如何订阅结果?相同的局部视图,相同的命令,如何区分?也许这整件事都是个坏主意。