这是可行的
<Border>
<StackPanel>
<TextBlock Text="{Binding Foo.Info1}" />
<TextBlock Text="{Binding Foo.Info2}" />
</StackPanel>
</Border>但这不是
<Border DataContext="Foo">
<StackPanel>
<TextBlock Text="{Binding Info1}" />
<TextBlock Text="{Binding Info2}" />
</StackPanel>
</Border>我的理解是,如果您为父对象设置datacontext,则子对象将能够绑定到属性。边框不是为人父母的好元素吗?我对XAML中的数据绑定非常陌生。有没有人能告诉我为什么第二个不起作用,并给我指出正确的方向?
发布于 2011-12-22 00:40:58
使用
<Border DataContext="{Binding Foo}"> 如果不绑定,边框的数据上下文只是"Foo“字符串,它没有任何Info1、Info2属性
希望这能有所帮助
发布于 2011-12-22 00:41:23
让我在这里大胆猜测一下,您仍然需要绑定到DataContext,而不是简单地应用看起来像“Foo”的文字字符串:
<Border DataContext="{Binding Foo}">
<StackPanel>
<TextBlock Text="{Binding Info1}" />
<TextBlock Text="{Binding Info2}" />
</StackPanel>
</Border>发布于 2011-12-22 00:41:31
你的语法是错的,你应该写:
<Border DataContext="{Binding Foo}">
<StackPanel>
<TextBlock Text="{Binding Info1}" />
<TextBlock Text="{Binding Info2}" />
</StackPanel>
</Border>https://stackoverflow.com/questions/8593193
复制相似问题