我有一个Silverlight应用程序。此应用程序具有UserControl。此UserControl具有一个类型的视图模型,我们将调用分配给其DataContext的ParentViewModel。此外,此UserControl有两个子UserControl元素。这些UserControl元素中的每一个都有一个我们将调用分配给其DataContext的ChildViewModel类型的视图模型。
当用户单击子UserControl元素的on按钮时,我希望它能影响第二个子UserControl。我有这个工作。我的问题是,我的ParentViewModel有一个属性,我想绑定到我的每个子UserControl元素。如何绑定到ParentViewModel中的属性?我一直认为DataContext是通过树传播的。但似乎我错了。
甚至可以做我正在尝试的事情吗?谢谢!
答案 0 :(得分:1)
从视图模型中创建层次结构。每个子视图模型都包含父项的引用。 F.i。
public class ChildViewModel1 :...
{
public ChildViewModel1(ParentViewModel parentViewModel)
{
_parentViewModel = parentViewModel;
}
private ParentViewModel _parentViewModel;
public ParentViewModel ParentViewModel {get {return _parentViewModel; }}
}
在XAML中:
<TextBlock Text={Binding ParentViewModel.NeededProperty}/>