0
如果属性路径中的其中一个父对象为空,我们如何控制会发生什么?例如:如果属性路径中的父对象为空,该怎么办?
<Button Command="{Binding ActiveDrawing.PrintCommand}" />
如果ActiveDrawing
为空怎么办?在这种情况下,我希望禁用此按钮,但WPF会保持启用状态。我曾尝试设置FallBackValue
为空,这样的:
<Button Command="{Binding ActiveDrawing.PrintCommand, FallbackValue={x:Null}}" />
但它不会有所作为。该按钮保持启用状态。
N.B.设置TargetNullValue
到{x:Null}
也没有区别。
执行PrintCommand,并在CanExecute中检查ActiveDrawing.PrintCommand。取消直接连接。 – Aphelion
我确实实施了'PrintCommand'和'CanExecute'。问题是,如果“ActiveDrawing”为null,那么WPF不会去那么远评估'CanExecute'。如果您要求我将所有命令从ActiveDrawing移至当前上下文,那么这太大了。我相信应该有一个简单的方法来指定一个值,以防因为某些原因评估失败。 – dotNET
事实上,我希望'FallbackValue'完全是为了这个目的,但不知何故它不能按我的预期工作。 – dotNET