我有一个包含多个TabItem的TabControl。我有一个Button,当按下它时,在我的应用程序中显示TabControl并打开一个特定的选项卡。当我在我的应用程序中TabControl不可见时,这可以工作。但是,当TabControl可见并且选择了不同的选项卡时,Button不起作用。选项卡不会更改。
这是我的TabControl的样子
<TabControl x:Name="TabControl">
<TabItem Header="Log"/>
<TabItem x:Name="AlarmTab" Header="Alarms"/>
</TabControl>
我在Button命令
中尝试了以下三种方法TabControl.SelectedIndex = 1;
TabControl.SelectedItem = AlarmTab;
AlarmTab.IsSelected = true;
Application.Current.Dispatcher.Invoke(() => AlarmTab.IsSelected = true);
但是当选择另一个标签时,这些都不起作用。
修改
当我使用BeginInvoke而不是Invoke时,它可以正常工作,但我不认为我应该使用BeginInvoke,因为在我切换到其他选项卡之前我可能会看到TabControl,对吧?