wpf和prism:view和viewmodel之间的链接

时间:2014-07-19 04:23:27

标签: wpf mvvm prism

我继承了WPF Prism应用程序,我很难看到viewmodel如何链接到各自的视图(xaml)。有时后面的视图代码将DataContext设置为正确的viewmodel,但我正在处理的应用程序没有在后面的代码中设置它。在Prism应用程序中还可以设置哪些其他内容?

2 个答案:

答案 0 :(得分:2)

使用Prism,可以自动为您设置视图模型。通常在视图中设置AutoWireViewModel = True属性。其余的按惯例完成。 Prism查找符合特定命名约定的任何ViewModel。默认命名约定是视图的YouPage和视图模型的YouPageViewModel。

可以在引导程序中更改视图模型约定,通常是app.xaml.cs文件。使用ViewModelLocator,您可以自定义命名约定。大多数人只是将其保留为默认值。

如果设置正确,视图模型所需的任何构造函数参数也将使用某种形式的IoC容器自动传递给它们。像Autofac,Unity或Ninject之类的东西。这也将在引导程序中配置。

答案 1 :(得分:0)

可以从Xaml,Behind Code或View Model Locator进行设置。

使用XAML创建视图模型

  

也许最简单的方法是视图以声明方式   在XAML中实例化其对应的视图模型。当视图是   构造后,相应的视图模型对象也将是   建造。您还可以在XAML中指定要设置的视图模型   作为视图的数据上下文。

以编程方式创建视图模型

  

另一种方法是视图实例化其相应的视图   以编程方式在其构造函数中建模实例。然后它可以设置它   作为其数据上下文,如以下代码示例所示。

使用视图模型定位器创建视图模型

  

创建视图模型实例并将其与其关联的另一种方法   视图是使用视图模型定位器。

这是documentation