【问题标题】:Binding a TextBlock's text to TabControl item in WPF将 TextBlock 的文本绑定到 WPF 中的 TabControl 项
【发布时间】:2011-05-02 17:02:53
【问题描述】:

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

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

在屏幕的其他地方,我有一个文本块,我想用它来显示所选选项卡的标记值。当屏幕最初加载时,它会在选择“事务”选项卡时,但选择不同的选项卡时,它将空白。为什么会这样,我怎样才能让它显示任何选定选项卡的标签?这是文本块:

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

【问题讨论】:

    标签: wpf binding tags tabcontrol textblock


    【解决方案1】:

    这对我来说按预期工作。 (你确实设置了 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}"/>
    

    选项卡标题显然是空的,但它们是可选择的。

    【讨论】:

    • 不,没有 itemssource,它完全按照我描述的方式填充,在 XAML 文件中硬编码了七个选项卡。你能告诉我你使用的代码,你的文本块和你的标签控件吗?我的文本块对于除第一个选项卡之外的所有选项卡都是完全空的。
    • 哇,这很奇怪...我刚刚粘贴了你的文本块,现在它正在工作。唯一的区别是我的有一个 Name 属性。我真的不知道有什么不同,但谢谢。
    猜你喜欢
    • 2011-01-01
    • 2013-01-15
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多