2

すべて、 MVVM を使用TabItemして動的に を追加しています。TabControl新しい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 で、新しいWorkspaceWorkspacesに追加するときに、SelectedTabIndex/SelectedWorkSpace を適切に設定します。

後者は、おそらく必要になる現在のワークスペースへのアクセスを提供します。

于 2013-05-20T23:01:31.727 に答える