Automatisches Bearbeiten des WPF-Datagrid-Inhalts, wenn die Datagrid-Zelle den Fokus erhält

8

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?

    
nullxff 27.01.2015, 10:48
quelle

4 Antworten

2

Ich habe es geschafft, nicht die beste Lösung, aber es funktioniert ... Wenn Cell den Fokus bekommt, setze ich es in den Bearbeitungsmodus.

%Vor%

Auf Keydown suche ich nach dem visuellen Kind und gebe den Fokus.

%Vor%

Finden Sie Visual Child!

%Vor%     
nullxff 03.02.2015, 12:25
quelle
12

Das scheint zu funktionieren:

%Vor%     
eran otzap 27.01.2015 11:20
quelle
0

Dieser Ansatz funktioniert für mich. Es verwendet die Tatsache, dass DataGrid immer eine neue Instanz der Vorlage erstellt, wenn die Bearbeitung beginnt:

%Vor%

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)

    
vesan 10.02.2016 03:20
quelle
0

die einfache Antwort für das neue Steuerelement aus dem DataGrid-Steuerelement

%Vor%     
Hisham 12.06.2017 15:04
quelle

Tags und Links