2011-03-28 76 views
1

我有一个Silverlight应用程序。这个应用程序有一个UserControl。这个UserControl有一个我们将调用ParentViewModel分配给它的DataContext的类型的视图模型。另外,这个UserControl有两个子UserControl元素。这些UserControl元素中的每一个都有一个我们将调用ChildViewModel分配给它的DataContext的类型的视图模型。Silverlight中的DataContext继承

当用户单击子UserControl元素上的按钮时,我希望它影响第二个子UserControl。我有这个工作。我的问题是,我的ParentViewModel有一个属性,我想要绑定到我的每个子UserControl元素。我如何绑定到我的ParentViewModel中的属性?我一直认为DataContext是通过树来传播的。但似乎我错了。

它甚至可以做我想要的吗?谢谢!

回答

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}/>