2015-10-14 60 views
0

我有这样的DataGrid中的TabItem:WPF之间的TabItems问题导航

 <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> 

我想,当我双击DataGrid中的其他选项卡将显示,所以我用这个方法:

private void empGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
     tabAddDocs.IsSelected = true; 
    } 

但没有任何反应。 当我按下“btnJump”按钮这一事件触发:

 private void btnJump_Click(object sender, RoutedEventArgs e) 
    { 
     tabAddDocs.IsSelected = true; 
    } 

这里的标签确实显示。

有什么区别? 我该如何解决这个问题?

谢谢!

+1

没有人会帮你没有大量的详细信息。尝试发布您的xaml&code-behind。 – user3690202

+0

谢谢,是否这样做,请尽量帮助我:) –

+0

在empGrid_MouseDoubleClick上放置一个断点。它有没有打? – user3690202

回答

0

如果你怀疑这是一家专注/其他行为问题,请尝试派遣选择以后:

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

工程就像一个魔术!谢谢! –