在WPF中设置子UserControl的datacontext

时间:2014-06-29 02:35:18

标签: wpf wpf-controls

我无法设置UserControl的datacontext(UserControl嵌套在其他UserControl中)。

我有以下结构:

查看/的ViewModels:

MainControl <-> MainViewModel <br>
UserControlA <-> ViewModelA<br>
UserControlB <-> ViewModelB<br><br>
ViewModels:<br>

ViewModelBViewModelA的属性 MainViewModel在ViewModelA中实例化ViewModelBctor

查看:
MainControl包含UserControlA,其中包含UserControlB MainControlViewModelA指定为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>

1 个答案:

答案 0 :(得分:6)

将UserControlB的datacontext绑定更改为:

<UserControl>
    <views:UserControlB DataContext="{Binding ViewModelB}" /> 
</UserControl>