TabControl.SelectedItem ไม่ใช่ TabItem ใช่ไหม การเชื่อมโยง RelativeSource ล้มเหลว

ฉันกำลังลองบางอย่างกับ 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 หรือไม่ มีอะไรที่แตกต่างในลำดับชั้นหรือไม่?


person Thriddas    schedule 08.03.2013    source แหล่งที่มา
comment
ฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา stackoverflow.com/questions/9394302/   -  person Sandeep Singh Rawat    schedule 08.03.2013


คำตอบ (1)


ดังที่แสดงในโพสต์ RelativeSource ใน DataTemplate ใช้งานได้กับ TabControl แต่ ไม่ใช่ TabItem TabItem และ SelectedContent โฮสต์อยู่ในพาเนลที่แตกต่างกัน ดังนั้น SelectedItem.Header จึงไม่ทำงานเนื่องจากไม่ใช่ tabItem จริงๆ

การโพสต์ภาพสอดแนมจากโพสต์ก่อนหน้าด้านล่าง ป้อนคำอธิบายรูปภาพที่นี่

person Sandeep Singh Rawat    schedule 13.03.2013