WPF,C#-双击数据网格';s排

WPF,C#-双击数据网格';s排,c#,wpf,datagrid,tabcontrol,C#,Wpf,Datagrid,Tabcontrol,我有一个datagrid,它位于tabcontrol项中。 双击datagrid中的行时,我希望tabcontrol更改选项卡 这是我的密码: <TabItem x:Name="tiDashboard" Header="Dashboard" Background="White"> <Grid> <DataGrid

我有一个datagrid,它位于tabcontrol项中。 双击datagrid中的行时,我希望tabcontrol更改选项卡

这是我的密码:

<TabItem
            x:Name="tiDashboard"
            Header="Dashboard"
            Background="White">

            <Grid>
                    <DataGrid
                            IsReadOnly="True"
                            x:Name="dgAnzeigeWerk"
                            AutoGenerateColumns="false"
                            Margin="0,10,0,249" 
                            HeadersVisibility="Column"
                            RowHeight="25" HorizontalAlignment="Left" Width="492">

                        <DataGrid.Resources>
                            <Style TargetType="{x:Type DataGridRow}">
                                <EventSetter Event="Control.MouseDoubleClick" Handler="dgAnzeigeWerk_Row_DoubleClick"/>
                            </Style>
                        </DataGrid.Resources>

                        <DataGrid.Columns>
                            <DataGridTextColumn Width="auto" Header="Nummer" Binding="{Binding Kostenstellennummer}"/>
                            <DataGridTextColumn Width="auto" Header="Kostenstelle" Binding="{Binding Kostenstelle}"/>
                            <DataGridTextColumn Width="*" Header="Kosten" Binding="{Binding Kosten}"/>
                        </DataGrid.Columns>

                    </DataGrid>
                    <ComboBox x:Name="cbYearWerk" HorizontalAlignment="Left" Height="25" Margin="497,10,0,0" VerticalAlignment="Top" Width="98" VerticalContentAlignment="Center" SelectionChanged="cbYearWerk_SelectionChanged"/>
                    <Separator Height="15" Margin="0,-10,0,0" VerticalAlignment="Top"/>

                </Grid>
            </Grid>
        </TabItem>
...
但是账单不会改变。我试着用一个按钮做同样的代码,结果成功了。 我还尝试了
tabControl.SelectedIndex=2
tiUebersicht.IsSelected=true
,但没有成功


有什么建议吗?

尝试在事件内部使用调度程序


添加
e.Handled=true到最后的处理程序

private void dgAnzeigeWerk_Row_DoubleClick(object sender, MouseButtonEventArgs e)
    {
        tabControl.SelectedItem = tiUebersicht;
        e.Handled = true;
    }

实际上,选择正在改变,但它发生得非常快,焦点又回到了包含
DataGrid
的选择。这可以通过
SelectionChanged
事件
TabControl

来验证。请发布
TabControl
的完整代码,以及什么是
tiUebersicht
tiUebersicht
TabControl
的选项卡项。TabControl本身没什么特别的为什么我要打电话给第二行的调度员双击?谢谢!我错过了e.Handled=true;这就是问题不起作用的原因。我认为这应该被接受为问题的答案
Dispatcher.InvokeAsync(() => tiUebersicht.IsSelected = true);
Dispatcher.Invoke(() => tiUebersicht.IsSelected = true);
Dispatcher.InvokeAsync(() => tabControl.SelectedItem = tiUebersicht);
Dispatcher.Invoke(() => tabControl.SelectedItem = tiUebersicht);
private void dgAnzeigeWerk_Row_DoubleClick(object sender, MouseButtonEventArgs e)
    {
        tabControl.SelectedItem = tiUebersicht;
        e.Handled = true;
    }