我能不能设置UserControl的数据上下文(UserControl嵌套在其他UserControl中)。
我的结构如下:
视图/视图模型:
MainControl <-> MainViewModel <br>
UserControlA <-> ViewModelA<br>
UserControlB <-> ViewModelB<br><br>
ViewModels:<br>
ViewModelB
是 ViewModelA
的一个属性。
MainViewModel
在 ctor
中实例化了 ViewModelA
和 ViewModelB
。
视图:
MainControl
包含 UserControlA
,而 UserControlA
又包含 UserControlB
。
MainControl
将 ViewModelA
分配为数据上下文(这样可以正常工作)。
<!-- MainControl Xaml-->
<UserControl x:Name="MainControl">
<views:UserControlA DataContext="{Binding ViewModelA}" />
</UserControl>
在
UserControlA
中我做的和MainControl
一样,绑定了UserControlB
的数据上下文到其ViewModel
,而这个ViewModel
是在ViewModelA
中的一个属性。
但是结果不如预期... <!-- USerControlA Xaml-->
<UserControl>
.....
.....
<views:UserControlB DataContext="{Binding DataContext.ViewModelB}" />
</UserControl>