这里有一个简单的问题:你用什么来将你的视图链接到你的视图模型?
基本上有两种常见的方法来实现这个目标,数据模板和视图模型注入(如下所示)。
我想知道的是,为什么你更喜欢一种方法而不是另一种方法,在哪种情况下你使用它们。请说明你使用的MVVM框架。
数据模板方式或“视图模型优先”方法(Resources.xaml):
视图模型注入方式或“视图优先”方法(PersonView.xaml.cs):
基本上有两种常见的方法来实现这个目标,数据模板和视图模型注入(如下所示)。
我想知道的是,为什么你更喜欢一种方法而不是另一种方法,在哪种情况下你使用它们。请说明你使用的MVVM框架。
数据模板方式或“视图模型优先”方法(Resources.xaml):
<DataTemplate DataType="{x:Type my:PersonViewModel}">
<my:PersonView/>
</DataTemplate>
视图模型注入方式或“视图优先”方法(PersonView.xaml.cs):
[Import]
public PersonViewModel ViewModel
{
set
{
this.DataContext = value;
}
}
new Window() { Content = windowViewModel }.Show()
这样的东西——那不会污染您的应用程序吗?因为它只应由视图模型组成。 - stakx - no longer contributingIsDialogOpen
和DialogContext
这样的属性,用于告诉视图显示“弹出窗口”。但如果我遇到需要多个窗口或顶级对话框的情况,我可能会考虑编写一些处理应用程序窗口/对话框管理的服务。这通常是我看到的推荐解决方案。 - Rachel