我是一名初学者,对于.net和MVVM设计模式还不太熟悉。目前我遇到了困难,因为在我的某个视图的代码后台文件中,我需要获取相应的模型对象。这里的关系是什么?是否可能,并且是否“正确的做法”?
视图应该访问包装模型的ViewModel,并将其从视图中隐藏。如果您需要从视图访问模型的属性,请让ViewModel将其公开为视图可以绑定到的属性。
{Binding Model.Title}
后置代码:
((MyViewModel)DataContext).Title
ViewModel(EmailClient)WPF应用框架(WAF)的示例应用程序展示了如何从视图中访问模型。
ViewModel 应该完全不知道视图的存在。视图应该仅使用 DataBinding,因此不了解模型或 ViewModel。
如果您需要与视图交互,则必须全部通过 DataBinding 进行。只有在特殊情况下才应该使用代码后台。
因此,在 ViewModel 上设置属性 并将其与视图进行 绑定。
public partial class MyView : Window
{
private MyViewModel aModel;
public MyView()
{
InitializeComponent();
aModel = new MyViewModel();
this.DataContext = aModel();
}
现在,视图将更改其控件的数据绑定,这些数据绑定绑定到 ViewModel 的公共属性。