WPF在选项卡项和问题之间导航

WPF在选项卡项和问题之间导航,wpf,tabitem,Wpf,Tabitem,我在TabItem中有这个数据网格: <TabControl x:Name="MainTab" FontSize="12" IsSynchronizedWithCurrentItem="True" SelectionChanged="MainTab_SelectionChanged"> <TabItem x:Name="tabAddDocs" Header=Add Docs"></TabItem> <TabItem x:N

我在TabItem中有这个数据网格:

        <TabControl x:Name="MainTab" FontSize="12" IsSynchronizedWithCurrentItem="True" SelectionChanged="MainTab_SelectionChanged">
    <TabItem x:Name="tabAddDocs" Header=Add Docs"></TabItem>
    <TabItem x:Name="tabEmpList" Header="Employee List">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="70*"/>
                <ColumnDefinition Width="30*"/>
            </Grid.ColumnDefinitions>
            <DataGrid x:Name="empGrid" HorizontalAlignment="Left" VerticalAlignment="Top"  
                  SelectionMode="Single" AlternatingRowBackground="#FFCDCDCD" AutoGenerateColumns="True" 
                  AutoGeneratingColumn="empGrid_AutoGeneratingColumn" FlowDirection="RightToLeft" 
                  FontSize="14" IsReadOnly="True" MouseDoubleClick="empGrid_MouseDoubleClick" 
                  Loaded="empGrid_Loaded" Focusable="False" IsEnabled="False"/>
            <Button Grid.Column="1" Name="btnJump" Click="btnJump_Click">Jump</Button>
        </Grid>
    </TabItem>
</TabControl>
但什么也没发生。 当我按下“btnJump”按钮时,此事件触发:

        private void btnJump_Click(object sender, RoutedEventArgs e)
    {
        tabAddDocs.IsSelected = true;
    }
在这里,账单真的显示出来了

有什么区别? 我怎样才能解决这个问题


谢谢

如果您怀疑这是焦点/其他行为问题,请尝试将所选内容发送到以后的:

private void btnJump_Click(object sender, RoutedEventArgs e)
{
    Dispatcher.BeginInvoke((Action)delegate {tabAddDocs.IsSelected = true;}, 
                           DispatcherPriority.ApplicationIdle);
}

如果没有更多的信息,没有人会帮助你。尝试发布您的xaml和代码隐藏。谢谢,这样做了,请尝试帮助我:)在empGrid_MouseDoubleClick上设置断点。它曾经被击中过吗?是的。我的想法是,datagrid将程序的“注意力”和焦点转移到它无法运行的wierd原因上。
private void btnJump_Click(object sender, RoutedEventArgs e)
{
    Dispatcher.BeginInvoke((Action)delegate {tabAddDocs.IsSelected = true;}, 
                           DispatcherPriority.ApplicationIdle);
}