[英]MVVM Access Model from View
我是.net和MVVM设计模型的新手。 我现在卡住了,因为在我的一个视图的代码隐藏文件中,我需要将相应的模型作为对象。 这里的关系怎么样? 是否有可能,它是“正确的方式”吗?
View应该访问ViewModel,它包装Model,将其从View中隐藏。 如果需要从View访问Model的属性,请让ViewModel将它们公开为View可以绑定的属性。
MVVM不禁止View直接访问Model。 这是MVVM社区中常见的误解。
您的ViewModel可以公开底层模型,以便View可以直接访问模型。
捆绑:
{Binding Model.Title}
代码背后:
((MyViewModel)DataContext).Title
WPF应用程序框架(WAF)的ViewModel (EmailClient)示例应用程序显示了如何从View访问模型。
ViewModel应该完全不了解视图。 View应仅使用DataBinding,因此不了解模型或ViewModel。
如果需要与视图进行交互,则必须通过DataBinding进行交互。 只有在特殊情况下,您才应该使用代码隐藏。
因此,在ViewModel上有一个属性并将其绑定到视图。
public partial class MyView : Window
{
private MyViewModel aModel;
public MyView()
{
InitializeComponent();
aModel = new MyViewModel();
this.DataContext = aModel();
}
现在,视图将更改其绑定到ViewModel的公共属性的控件数据绑定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.