Benutzerdefinierte CheckBox in WPF DataGrid aktualisiert die Bindung nicht

8

Ich habe den folgenden (vereinfachten) Stil:

%Vor%

Wenn ich es als ElementStyle UND EditingElementStyle in meiner DataGridCheckBoxColumn verwende:

%Vor%

Dann schaltet meine Bindung, IsEnabled , nicht um, wenn ich das Kontrollkästchen einer Zeile an / abchecke. Wenn ich entweder ElementStyle, EditingElementStyle oder beides entferne, wird die Bindung nicht aktualisiert. Warum ist das?!

Außerdem habe ich versucht, das Problem mit dem folgenden Code zu umgehen:

%Vor%

Das Problem bleibt jedoch bestehen.

    
Pakman 28.05.2010, 03:45
quelle

2 Antworten

11

Zuerst Ihre Behauptung, dass, wenn Sie entweder ElementStyle oder EditingElementStyle das Problem lösen, nicht korrekt sind, was Sie umdreht, ist ElementStyle .

Die Sache ist, dass für die Bearbeitung das Datenraster zur Bearbeitungsvorlage wechseln muss, was normalerweise mit einem Mausklick geschieht, da aber das CheckBox das Mausklick-Ereignis behandelt, wird das Datenraster nie kommen Es geht nicht in den Bearbeitungsmodus und verhindert, dass Ihre Änderung jemals Ihre Datenobjekte erreicht (sie bleibt innerhalb der Datenansicht, wird aber nicht an die Quelldaten übergeben).

Nun fragen Sie sich vielleicht, wie ist das Standardverhalten in Ordnung? Wenn Sie sich den Standardwert der Eigenschaft ElementStyle ansehen, werden Sie feststellen, dass sowohl IsHitTestVisible als auch Focusable auf false gesetzt sind. Dies verhindert, dass CheckBox den Mausklick (oder das Tastaturereignis) verarbeitet, der seinen Status ändert, und ermöglicht dem Datengrid, sie zu empfangen, wodurch er in den Bearbeitungsmodus wechseln und zu EditingElementStyle wechseln kann, was nicht der Fall ist Einfluss auf die Fokussierbarkeit und die Treffertestbarkeit.

Sehen Sie sich diesen Blogeintrag an, um ein Beispiel dafür zu finden, wie man das richtig macht

    
Aviad P. 28.05.2010, 20:29
quelle
10

Entschuldigung für den Necro, aber ich denke, dass ich hier auf Stack Overflow eine bessere Lösung gefunden habe, die Leuten helfen könnte, auf dieser Seite nach einer Lösung zu suchen.

Ссылка

%Vor%

Ich habe es versucht und es hat perfekt für mich funktioniert, einfacher als die akzeptierte Lösung und beseitigt auch die Notwendigkeit für zusätzliche Klicks auf die Checkboxen.

    
supersonic_ht 17.07.2015 09:38
quelle

Tags und Links