将 TextBlock 的文本绑定到 WPF 中的 TabControl 项
我有一个带有选项卡控件的 WPF 窗口,并且我在 XAML 文件中定义 TabItem,例如:
<TabControl>
<TabItem Name="tab1" Tag="Transactions"/>
<TabItem Name="tab2" Tag="Promotions" />
...
</TabControl>
在屏幕的其他位置,我有一个文本块,我想用它来显示所选选项卡的 Tag 值。当屏幕最初加载时,只要选择“交易”选项卡,它就可以工作,但当选择不同的选项卡时,它是空白的。为什么会这样,如何让它显示任何选定选项卡的标签?这是文本块:
<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>
I have a WPF window with a tab control, and I'm defining the TabItems in the XAML file, like:
<TabControl>
<TabItem Name="tab1" Tag="Transactions"/>
<TabItem Name="tab2" Tag="Promotions" />
...
</TabControl>
Elsewhere on the screen I have a textblock which I want to use to display the Tag value of the selected tab. It works when the screen is initially loaded, and whenever the "transactions" tab is selected, but when a different tab is selected, it's blank. Why is that, and how can I make it display the tag of any selected tab? Here is the TextBlock:
<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这对我来说是预期的。 (您确实设置了 TabControl 的名称,对吧?)
请注意,如果 TabControl 是通过 ItemsSource 填充的,则与示例代码不同,SelectedItem 将不包含 TabItem,而是包含创建 TabItem 的数据对象,因此绑定路径 <代码>SelectedItem.Tag 不起作用。
使用的代码:
选项卡标题显然是空的,但它们是可选择的。
This works as expected for me. (You did set the name of the TabControl, right?)
Note that if the TabControl is populated via ItemsSource unlike your example code the SelectedItem will not contain the TabItem but the data-object from which the TabItem is created, so the binding path
SelectedItem.Tag
does not work.Code used:
The tab headers are obviously going to be empty but they are selectable.