将TextBlock的文本绑定到WPF中的TabControl项

时间:2011-05-02 17:02:54

标签: wpf binding tags tabcontrol textblock

我有一个带有选项卡控件的WPF窗口,我在XAML文件中定义了TabItems,如:

<TabControl>
    <TabItem Name="tab1" Tag="Transactions"/>
    <TabItem Name="tab2" Tag="Promotions" />
    ...
</TabControl>

在屏幕上的其他地方,我有一个文本块,我想用它来显示所选标签的标签值。它在初始加载屏幕时起作用,并且每当选择“事务”选项卡时,但是当选择了不同的选项卡时,它是空白的。为什么会这样,如何让它显示任何选定标签的标签?这是TextBlock:

<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>

1 个答案:

答案 0 :(得分:0)

这对我来说是预期的。 (你确实设置了TabControl的名称,对吗?)

请注意,如果通过ItemsSource填充TabControl,与示例代码不同,SelectedItem将不包含TabItem,而是包含创建TabItem的数据对象,因此绑定路径SelectedItem.Tag不起作用。

使用的代码:

<!-- Both controls enclosed in a Stackpanel -->
<TabControl Name="tabControl1">
    <TabItem Name="tab1" Tag="Transactions"/>
    <TabItem Name="tab2" Tag="Promotions" />
</TabControl>
<TextBlock Text="{Binding ElementName=tabControl1, Path=SelectedItem.Tag}"/>

标签标题显然是空的,但它们是可选的。