在Silverlight中,子控件视图模型如何访问父数据上下文?

时间:2011-08-10 16:45:32

标签: silverlight-4.0 mvvm datacontext

背景
我有类似于以下伪代码的xaml

...
<DataContext><vm:parentVM/></DataContext>
<Grid x:Name="LayoutRoot">
...
<local:myControl Grid.Column="0" Grid.Row="1" DataContext="{Binding vmChild}" />

问题:
当我在视图模型vmChild的上下文中处理一些代码时,如何访问视图模型中的属性和方法vmParent

1 个答案:

答案 0 :(得分:1)

试试这个:假设Listbox的数据上下文在你的childVM中,而父类是一个Grid,它的数据上下文是从ParentVM设置的。一些铸造技巧可以让你访问货物。

  (((sender as ListBox).Parent as Grid).DataContext as ParentVM).VMProperty = "Cool";