2013-05-20 39 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