繁体   English   中英

View中的MVVM访问模型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM