代码之家  ›  专栏  ›  技术社区  ›  Thriddas

TabControl.SelectedItem不是TabItem?RelativeSource绑定失败

  •  3
  • Thriddas  · 技术社区  · 12 年前

    我正在尝试使用TabControl,对此感到困惑

    <TabControl Name="MainControl">
        <TabItem Header="MyTab1">
        <TextBlock Text="{Binding  Path=SelectedItem.Header, RelativeSource={RelativeSource FindAncestor, AncestorType=TabControl}}"/>
        </TabItem>
        <TabItem Header="Modules" ContentTemplate="{StaticResource tabItemControl}"/>
    </TabControl>
    

    这是意料之中的事。

    然而:

    <TabControl Name="MainControl">
        <TabItem Header="MyTab1">
        <TextBlock Text="{Binding  Path=Header, RelativeSource={RelativeSource FindAncestor, AncestorType=TabItem}}"/>
        </TabItem>
        <TabItem Header="Modules" ContentTemplate="{StaticResource tabItemControl}"/>
    </TabControl>
    

    没有。

    知道为什么吗?

    selectedItem不是TabItem吗?等级制度中有什么不同吗?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Community CDub    7 年前

    如帖子所示 RelativeSource in DataTemplate works with TabControl but not with TabItem TabItem和SelectedContent托管在不同的面板中,因此SelectedItem.Header不起作用,因为它实际上不是TabItem

    发布下面早期帖子中的窥探图像 enter image description here