2009-06-16 102 views
0

在以下示例中,SelectedValueTabControl始終爲null。爲什麼?WPF:SelectedValue always null

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib"> 
<DockPanel> 
    <TextBlock Text="{Binding SelectedValue, ElementName=Tabs}" DockPanel.Dock="Bottom"/> 
    <TabControl x:Name="Tabs" SelectedValuePath="Content.SelectedItem"> 
     <TabItem Header="TabOne"> 
      <ListView> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn/> 
        </GridView> 
       </ListView.View> 
       <s:String>ItemOne</s:String> 
       <s:String>ItemTwo</s:String> 
      </ListView> 
     </TabItem> 
     <TabItem Header="TabTwo"> 
      <ListView> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn/> 
        </GridView> 
       </ListView.View> 
       <s:String>ItemOne</s:String> 
       <s:String>ItemTwo</s:String> 
      </ListView> 
     </TabItem> 
    </TabControl> 
</DockPanel> 
</Window> 

回答

2

由於micahtan中指出評論,SelectedValue切換標籤時會更新。這意味着TabControl不會監視SelectedValuePath中更改的屬性,只會在每次更改SelectedItem時輪詢它們。

0

不知道你的努力做,但:

假設你想選擇的TabItem的名稱在TextBlock中顯示出來,那是因爲你的SelectedValuePath不正確。試着改變你的TabControl標籤:

<TabControl x:Name="Tabs" SelectedValuePath="Header"> 

假設你正在試圖獲得ListView中的字符串裏面的內容,請嘗試更改您的文本框結合:

<TextBlock Text="{Binding SelectedItem.Content.SelectedItem, ElementName=Tabs}" DockPanel.Dock="Bottom"/> 
+0

我澄清了我的問題。 – CannibalSmith 2009-06-16 15:44:38