【发布时间】:2018-11-07 05:22:03
【问题描述】:
下面的第一个文本框找不到父 TabItem,但是第二个文本框可以。我在第一次绑定中做错了什么?
<TabItem Style="{StaticResource TabItemStyle}" x:Name="zzzzz">
<StackPanel >
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TabItem}}, Path=IsSelected}"></TextBlock>
<TextBlock Text="{Binding ElementName=zzzzz, Path=IsSelected}" />
</StackPanel>
</TabItem>
错误消息是:System.Windows.Data 错误:4:找不到与引用“RelativeSource FindAncestor, AncestorType='System.Windows.Controls.TabItem', AncestorLevel='1'' 进行绑定的源。绑定表达式:路径=IsSelected;数据项=空;目标元素是'TextBlock'(名称='');目标属性是“文本”(类型“字符串”)
我从未设置过 AncestorLevel,但我尝试将其设置为 5000 仍然无法正常工作。
请注意,我没有像 this question 中所示那样从 DataTemplate 设置绑定。
【问题讨论】:
-
@FoggyFinder 谢谢 - 我看到了这个,但我不明白它如何应用于我的场景。事实上,我正在寻找 TabItem,正如第二个 TextBlock 所证明的那样。
-
@ASh 查看更新后的问题。
-
@mm8 是的一个 TextBlock 读取为 true - 第二个。我在我的工作计算机上重新制作了这个 - 只需创建一个新项目并在 MainWindow 中添加一个 TabControl。粘贴问题中的代码。第一个 TextBlock 是空的。删除样式没有区别。
标签: wpf