当出现错误时,回退值是否会应用于2路绑定的源?

时间:2018-05-23 14:24:28

标签: .net wpf

当从源向目标发送值时存在绑定错误时,目标会收到回退值。对于目标尝试在源上设置值时发生错误时的双向绑定,源是否也会收到回退值?

我想到的特殊情况是文本框绑定到视图模型的数字属性。如果用户在文本框中键入非数字值,那么将会发生转换异常,在这种情况下,我希望模型接收默认值,比如0.

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

以下情况使用FallbackValue:

  1. 绑定无法从源获取值或
  2. Source返回UnsetValue。
  3. 在任何一种情况下,将此回退值返回到源是没有意义的,因为

    1. 绑定不知道来源或
    2. 转换器返回UnsetValue,该值不被视为对目标OR源有效。
    3. 如果你想要一个ViewModel也知道的DefaultValue,那么你应该在ViewModel或Converter中指定它。

      修改

      当Value无法转换为源类型时,FallbackValue无效。为了弥补这种情况,我建议创建一个转换器。