2013-05-20 41 views
2

所有,我使用MVVM動態添加TabItemTabControl。新的TabItems加載正常,但我希望添加的選項卡自動獲得焦點。也就是說,我添加了一個選項卡,我不想點擊該選項卡來重點關注它。當使用MVVM動態添加時給出一個TabItem焦點

的XAML爲TabControl樣子

<TabControl ItemsSource="{Binding Path=Workspaces}" 
      IsSynchronizedWithCurrentItem="True" 
      HorizontalContentAlignment="Stretch" 
      VerticalContentAlignment="Stretch" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      TabStripPlacement="Top"> 
<TabControl.ItemContainerStyle> 
    <Style TargetType="TabItem"> 
     <Setter Property="Header" Value="{Binding Path=DisplayName}"/> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
    </Style> 
</TabControl.ItemContainerStyle> 
<TabControl.ContentTemplate> 
    <DataTemplate> 
     <views:ResourceControl DataContext="{Binding}" 
          HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch"/> 
    </DataTemplate> 
</TabControl.ContentTemplate> 
</TabControl> 

我認爲(基於這裏的一些答案),即IsSynchronizedWithCurrentItem="True"會解決這個問題對我來說,但是這是行不通的。

如何自動選擇添加的TabItem

謝謝你的時間。

回答

2

您可以將selectedIndex設置爲一個屬性綁定您的視圖模型

SelectedIndex="{Binding SelectedTabIndex}" > 

或使用

SelectedItem="{Binding SelectedWorkSpace}" 

在您的視圖模型,當你添加一個新的工作區工作區,設置SelectedTabIndex/SelectedWorkSpace適當。

後者讓您訪問當前可能需要的工作空間。

+0

+1謝謝。但是,這裏是什麼'SelectedTabindex'?我是否必須在相關的視圖模型中創建一個屬性? – MoonKnight

+0

我認爲這將更好地綁定到SelectedItem(而不是SelectedIndex)。 – grantnz

+0

是在viewmodel – cheedep