2014-06-29 81 views
6

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

我有以下结构:

查看/的ViewModels:

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

ViewModelBViewModelA MainViewModel实例在ctorViewModelAViewModelB的性质。

浏览:
MainControl包含UserControlA,又包含UserControlB MainControl分配ViewModelA作为DataContext的(这工作正常)

<!-- MainControl Xaml--> 
<UserControl x:Name="MainControl"> 

<views:UserControlA DataContext="{Binding ViewModelA}" /> 

</UserControl> 

UserControlA我做同样的事情作为MainControl,将数据上下文 的UserControlB与它的ViewModel关联,这是ViewModelA的一个属性 这不是作为ex反恐执行局...

<!-- USerControlA Xaml--> 
    <UserControl> 
    ..... 
    ..... 

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

    </UserControl> 

回答

6

更改为的DataContext到UserControlB结合:

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

由于斯图尔特,它实际上竟然是我与我绑定的DataContext方式的一部分愚蠢的拼写错误。我刚读完一篇关于调试绑定错误的文章,这也有帮助。这里是[调试绑定错误] http://www.wpf-tutorial.com/data-binding/debugging/
我同意你没有必要使用ViewModel的DataContext.ViewModelB就足够了。 – Anonymous

相关问题