我不介意感到愚蠢是件好事。
我正在尝试绑定到我的视图模型上的ObservableCollection。数据层次结构如下所示:Parent -contains list of-Child对象。没什么复杂的。
在我的Xaml树的最外层网格中,我建立了一个指向视图模型的链接:
<Grid DataContext="{StaticResource src}">
是的,在问题文本框正常工作之前,src确实引用了视图模型和二十几个绑定。我的Xaml树中没有另一个DataContext。现在我来到一个简单的文本框。我想将Textbox文本绑定到child.property。
这有效:
<TextBlock
DataContext="{Binding Parent}"
Text="{Binding Path=Child.Property}"
Style="{StaticResource headerMajor}"
/>
这不起作用:
<TextBlock
Text="{Binding Source=Parent,Path=Child.Property}"
Style="{StaticResource headerMajor}"
/>
我认为他们有两种方式说同样的话。通常我想知道片刻,然后继续编码。但是,我读到的一些建议提到埋藏在Xaml控件中的DataContext属性可能导致很难找到错误。
请解释为什么一个有效,另一个没有。这将有助于我掌握整个约束性主题。
吉姆
答案 0 :(得分:1)
Source
是一个属性,它保存用作绑定源的object
,它不解析为属性。因此,您的绑定正在查找字符串Child.Property
上的属性路径"Parent"
,看到问题?