我有一个相对简单的问题,我不明白。假设我指定了ContentControl和ContentTemplate,我想执行以下操作:
<ContentControl ContentTemplate="{StaticResource UserView}" DataContext="{Binding User}" />
然而令我惊讶的是,这完全失败了,而以下几行完美无缺:
<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding User}" />
仔细检查后,第一行给出了一个令人惊讶的null
作为其DataContext,而后一行具有正确的DataContext。
有人可以向我解释发生了什么事吗?
感谢您的一切!
答案 0 :(得分:1)
我认为您绑定到属性User
,其定义为ViewModel
。比你不必设置DataContext
:
<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding}" DataContext="{Binding User}" />
更常见的是写这个:
<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding User}"/>
答案 1 :(得分:0)
我认为在第一个示例中,Content Property为null,因此您应该这样做
<ContentControl ContentTemplate="{StaticResource UserView}" Content="{Binding}" DataContext="{Binding User}" />