Verwenden von IMultiValueConverter zum Übergeben mehrerer CommandParameters an viewModel

8

Ich habe den folgenden Code:

%Vor%

Unten ist der Code für PassThroughConverter:

%Vor%

Wenn ich debugge, sobald es die Rückgabewerte Zeile trifft, sind die richtigen Werte in dem Array aber wenn ich den Knopf drücke, der den filtergridcommand auslöst, sind die zurückgegebenen Werte beide null? Kann jemand helfen. Vielen Dank.

    
bewilderedprogrammer 25.05.2012, 18:20
quelle

1 Antwort

12

Einige Experimente bestätigen, dass dies gemacht wird.

%Vor%

führt dazu, dass der Befehlsparameter als object[] { null, null } endet.

Der Konverter wird jedes Mal ausgeführt, wenn sich ein gebundener Wert ändert, nicht wenn der Befehl ausgeführt wird, und der Rückgabewert wird für die Verwendung zwischengespeichert, wenn der Befehl ausgeführt wird. Der ursprüngliche Parameter object[] values scheint auf alle Nullen zurückgesetzt zu sein.

Die Lösung besteht darin, den Parameter values zu klonen. In Ihrem Fall können Sie dies tun:

%Vor%

Sinnvollerweise kann eine variable Anzahl von Werten wie folgt behandelt werden:

%Vor%     
Phil 25.05.2012, 21:09
quelle