我无法设置UserControl的datacontext(UserControl嵌套在其他UserControl中)。
我有以下结构:
查看/的ViewModels:
MainControl <-> MainViewModel <br>
UserControlA <-> ViewModelA<br>
UserControlB <-> ViewModelB<br><br>
ViewModels:<br>
ViewModelB
是ViewModelA
的属性
MainViewModel在ViewModelA
中实例化ViewModelB
和ctor
。
查看:
MainControl
包含UserControlA
,其中包含UserControlB
MainControl
将ViewModelA
指定为datacontext(这可以按预期工作)
<!-- MainControl Xaml-->
<UserControl x:Name="MainControl">
<views:UserControlA DataContext="{Binding ViewModelA}" />
</UserControl>
在UserControlA
我做与MainControl
中相同的事情,绑定datacontext
UserControlB
的{{1}} ViewModel
属性ViewModelA
这没有按预期工作......
<!-- USerControlA Xaml-->
<UserControl>
.....
.....
<views:UserControlB DataContext="{Binding DataContext.ViewModelB}" />
</UserControl>
答案 0 :(得分:6)
将UserControlB的datacontext绑定更改为:
<UserControl>
<views:UserControlB DataContext="{Binding ViewModelB}" />
</UserControl>