Wie steuern wir, was passiert, wenn eines der übergeordneten Objekte im Eigenschaftspfad null ist? Zum Beispiel:Was ist, wenn das übergeordnete Objekt im Eigenschaftenpfad null ist?
<Button Command="{Binding ActiveDrawing.PrintCommand}" />
Was passiert, wenn ActiveDrawing
ist null? Ich möchte, dass diese Schaltfläche in diesem Fall deaktiviert wird, aber WPF behält sie aktiviert. Ich habe versucht Einstellung FallBackValue
auf null, wie folgt aus:
<Button Command="{Binding ActiveDrawing.PrintCommand, FallbackValue={x:Null}}" />
aber es macht keinen Unterschied machen. Die Schaltfläche bleibt aktiviert.
N.B. Einstellung TargetNullValue
zu {x:Null}
macht auch keinen Unterschied.
Implementieren Sie einen PrintCommand, und überprüfen Sie in CanExecute den ActiveDrawing.PrintCommand. Entfernen Sie die direkte Kupplung. – Aphelion
Ich habe 'PrintCommand' und' CanExecute' implementiert. Problem ist, dass WPF nicht so weit gehen wird, um 'CanExecute' auszuwerten, wenn' ActiveDrawing' gleich null ist. Wenn Sie mich bitten, ALLE meine Befehle von ActiveDrawing in den aktuellen Kontext zu verschieben, ist das ein zu großes Unterfangen. Ich glaube, es sollte einen einfachen Weg geben, einen Wert anzugeben, falls die Bewertung der Bindung aus irgendeinem Grund fehlschlägt. – dotNET
Tatsächlich hoffte ich, dass 'FallbackValue' nur für diesen Zweck gedacht ist, aber irgendwie funktioniert es nicht so, wie ich es erwartet hatte. – dotNET