我正在努力理解MVVM模式,虽然我理解了很多内容,但是我在理解一个方面时遇到了困难:设置DataContext。
我想显示一个特定对象的视图。用户不能决定什么可见,所以我需要在代码中创建视图。然后,我想将视图的DataContext设置为一个对象(用于绑定)。我尝试不要在View中添加代码来完成这个步骤,但是View.LayoutRoot.DataContext不是公共的。
我错过了什么?
使用类似以下的方式:
我想显示一个特定对象的视图。用户不能决定什么可见,所以我需要在代码中创建视图。然后,我想将视图的DataContext设置为一个对象(用于绑定)。我尝试不要在View中添加代码来完成这个步骤,但是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;
}
}