2014-06-29 78 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

相關問題