2011-05-02 79 views
0

我有一个标签控件的WPF窗口,我定义的TabItems在XAML文件,如:绑定一个TextBlock的文本TabControl的项目在WPF

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

别处屏幕,我有一个上我想用来显示所选标签的标签值的文本块。它在屏幕最初加载时起作用,并且每当选择“交易”选项卡时,但当选择了不同的选项卡时,它都是空白的。为什么是这样,我怎样才能让它显示任何选定标签的标签?这里是TextBlock:

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

回答

0

这工作正如我所料。 (你确实设置了TabControl的名称,对吗?)

请注意,如果TabControl通过ItemsSource填充,与您的示例代码不同,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}"/> 

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

+0

不,没有itemssource,它的填充方式与我所描述的完全相同,在XAML文件中有七个硬编码标签。你能告诉我你使用的代码,你的文本块和你的tabcontrol?除第一个标签外,我的文本块对所有标签都是完全空白的。 – drowned 2011-05-02 17:43:02

+0

为我的答案添加了代码。 – 2011-05-02 18:09:47

+0

哇,这很奇怪......我只是粘贴你的文本块,现在它的工作。唯一的区别是我有一个Name属性。我真的不知道有什么不同,但谢谢。 – drowned 2011-05-02 18:28:56