WPF的绑定引擎在转换值时有哪些特殊值?

7

我已经知道关于Binding.DoNothing的内容,它是在IValueConverter实现中返回的用来表示不需要执行其他操作的特殊值。

然而,我找不到一个参考文献或者有关其他特殊值的文档 - 比如返回fallback值。它们是什么?


如果绑定在首次尝试时未能成功或者在绑定时抛出了一些异常,就会发生回退。 - H.B.
了解这些值的最佳方法是阅读有关BindingBindingBase类的文章。您可以使用的所有内容都在那里列出。 - koshdim
1个回答

16

Binding.DoNothing 是一个对象实例,你可以在值转换器中主动返回它;它指示绑定引擎不更新目标属性的值。这里是 Josh Smith 提供的一个很好的示例,展示了你可能会用到的情况。

FallbackValue 是一种应用于绑定的属性;它允许你指定将要应用于目标属性的值,如果:

  • 绑定源无法解析(例如,绑定路径错误),或
  • 绑定属性的值等于 DependencyProperty.UnsetValue
  • 绑定所使用的值转换器抛出异常,或
  • 绑定所使用的值转换器返回 DependencyProperty.UnsetValue,或
  • 绑定管道生成的值对于目标属性无效(例如,类型错误)

TargetNullValue 也是一种应用于绑定的属性;它允许你指定将要应用于目标属性的值,如果源属性的值为 null。例如,如果你将一个文本框绑定到一个字符串属性,TargetNullValue 允许你选择当源字符串为 null 时文本框中显示的内容。


1
啊!DependencyProperty.UnsetValue。这就是我要找的那个。 - Jean Hominal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接