DataGrid CurrentItem != SelectedItem nach Wiedereintritt mit tab-Taste
Diese einfache 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>
das zeigt eine der gebundenen Liste ohne Probleme, verhält sich in einer seltsamen Art und Weise, wenn es den Fokus Rücken:
Zunächst eine Zeile vom Benutzer ausgewählt wird, welche macht das datagrid anzeigen, dass die Zeile in der gewählten Weise (SelectedItem und auch CurrentItem enthalten, die das ausgewählte Objekt). Dann das Augenmerk auf ein anderes Steuerelement. In diesem status - die Auswahl wird immer noch angezeigt - SelectedItem ist immer noch da, während die CurrentItem-null ist! Und dann den Fokus kommt zurück mit der TAB-Taste. Das macht die CurrentItem-das erste Objekt, das angezeigt wird, während das SelectedItem geändert wird nicht. So CurrentItem nicht gehen zusammen mit SelectetItem in diesem Staat was zu sehen im DataGrid. Und ich denke mir, was ist gut für...
Meine qustion ist: Wie beraten Sie das DataGrid, um die gleiche CurrentItem, der ausgewählt war, bevor der Fokus verloren gegangen ist? Und wie ist es möglich, zu synchronisieren, die CurrentItem-und SelectedItem?
Ich hoffe auf eine einfache Lösung! Sie würden mir sehr helfen. Vielen Dank im Voraus...
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel ich Binde die
SelectedItem
einer Eigenschaft in derDataContext
, und legen SieIsSynchronizedWithCurrentItem
auf false.Einstellung IsSyncrhonizedWithCurrentItem zu wahren werde es so machen das
SelectedItem
von der Steuerung synchronisiert mit derCurrentItem
Eigenschaft in einer Sammlung, aber ich habe Probleme mit diesem, da ich nicht immer verstehen, wieCurrentItem
bekommt und behält seinen Wert.Zwei Möglichkeiten zur Lösung dieses Problems:
Melden Sie einen bug-Bericht mit Microsoft-Support, die besagt, dass IsSynchronizedWithCurrentItem funktioniert nicht immer, wenn Sie mit der Tabulatortaste.
Binden Sie die SelectedItem auf die aktuelle Zelle in der Zeile, die ist gespeichert in der CurrentCell die Item-Eigenschaft: