使用制表符按钮重新进入后,DataGrid CurrentItem!= SelectedItem

nav*_*ato 7 wpf datagrid focus selecteditem currentitem

这个简单的WPF-DataGrid

<DataGrid AutoGenerateColumns="False" Height="300" HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" Name="dgOriginal" Margin="4,12,0,0"
      CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" IsSynchronizedWithCurrentItem="True" 
      CanUserSortColumns="False" SelectionMode="Single" SelectionUnit="FullRow">
<DataGrid.Columns>
    <DataGridCheckBoxColumn x:Name="col2Checked"/>
    <DataGridTextColumn x:Name="col2Name"/>
    <DataGridTextColumn x:Name="col2Vorname"/>
</DataGrid.Columns>            
Run Code Online (Sandbox Code Playgroud)

它显示了一个没有问题的绑定列表,在获得焦点时表现得很奇怪:首先,用户选择了一行,这使得datagrid以选定的方式显示该行(SelectedItem和CurrentItem包含所选对象) .然后重点关注另一个控件.在此状态 - 仍然显示选择 - 当CurrentItem为null时,SelectedItem仍然存在!然后通过使用TAB-Button重新调整焦点.这使得CurrentItem成为第一个在SelectedItem未更改时显示的对象.因此,CurrentItem不会与SelectetItem一起处于可在DataGrid中看到的状态.而且我觉得自己有什么好处......

我的qustion是:如何建议DataGrid具有在焦点丢失之前选择的相同CurrentItem?如何同步CurrentItem和SelectedItem?

我希望有一个简单的解决方案!你会帮助我很多.提前致谢...

Rac*_*hel 4

通常我将 绑定SelectedItem到 中的一个属性DataContext,并设置IsSynchronizedWithCurrentItem为 false。

<DataGrid ItemsSource="{Binding SomeCollection}"
          SelectedItem="{Binding SelectedItem}" />
Run Code Online (Sandbox Code Playgroud)

将IsSyncrhonizedWithCurrentItem设置为 true 将使SelectedItemControl 的 与CurrentItem集合的属性同步,但是我对此遇到了问题,因为我并不总是了解如何CurrentItem获取和维护其值。