我正在尝试围绕 MVVM 进行思考。我了解很多,但我很难掌握一个方面:设置 DataContext。
我想显示具有特定对象的视图。用户无法决定什么是可见的,所以我需要在代码中创建视图。然后,我想将视图的 DataContext 设置为一个对象(用于绑定)。我试图不在视图中为此添加代码,但 View.LayoutRoot.DataContext 不是公开的。
我错过了什么?
试图避免这种情况:
public class View
{
public View(object dataContext)
{
InitializeComponent();
LayoutRoot.DataContext = dataContext;
}
}
像这样:
public class ViewModel
{
...
public UIElement GetView()
{
UIElement *element = new View();
element.LayoutRoot.DataContext = element;
return element;
}
}