Ich habe ein DataGrid in WPF mit einem DataGridTextColum und einem DataGridTemplateColum .
%Vor%Die CellTemplateSelectors geben ein DataTemplate mit einem TextBlock für die Celltemplate resp. eine TextBox für CellEditing!
%Vor%Jetzt möchte ich die TextBox automatisch fokussieren, wenn die DataGridCell den Fokus erhält. Der Benutzer sollte in der Lage sein, den TextBox-Inhalt zu bearbeiten, ohne die Zelle zu doppelklicken.
Ich habe diesen Artikel gefunden:
DataGrid-Tipps & amp; Tricks: Einzelklick-Bearbeitung Wo kann ich das Current DataGridCell abrufen, aber wie kann ich auf den Inhalt zugreifen, um der Textbox den Fokus zum Bearbeiten des Inhalts zu geben?
Das ist mein Stil:
%Vor%Dies ist mein Event-Handler:
%Vor%Wie kann ich das Textfeld mit diesem Ereignishandler abrufen?
Dieser Ansatz funktioniert für mich. Es verwendet die Tatsache, dass DataGrid
immer eine neue Instanz der Vorlage erstellt, wenn die Bearbeitung beginnt:
und im Code dahinter:
%Vor%Als zusätzlichen Bonus wählt es auch den gesamten Text in der Zelle aus. Es sollte funktionieren, egal wie Sie den Bearbeitungsmodus aufrufen (Doppelklick, Einzelklick, Drücken von F2)