2

所有,我正在添加TabItem一个TabControl动态使用 MVVM。新的TabItems加载很好,但我希望添加的选项卡自动获得焦点。也就是说,我添加了一个选项卡,但我不想单击该选项卡以使其获得焦点。

TabControl外观的 XAML

<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

谢谢你的时间。

4

1 回答 1

2

您可以将 selectedIndex 绑定到视图模型上的属性

SelectedIndex="{Binding SelectedTabIndex}" >

或使用

SelectedItem="{Binding SelectedWorkSpace}"

在您的 ViewModel 中,当您将新的Workspace添加到Workspaces时,请适当地设置 SelectedTabIndex/SelectedWorkSpace。

后者使您可以访问您可能需要的当前工作区。

于 2013-05-20T23:01:31.727 回答