WPF 4.5 中对绑定的改善

  • Jonathan Allen
  • 侯伯薇

2011 年 12 月 10 日

话题:.NET语言 & 开发

尽管 WPF 已经不再是明星产品,但它在 Windows 富客户端开发中的地位还是举足轻重。它拥有对.NET 类库以及底层操作系统完全的访问权限,没有任何其他 HTML 或者基于.NET 的用户界面技术能够与之相提并论。微软意识到了它的重要性,并将继续对其投资以做出改善,特别是对其绑定(binding)功能。

首先是支持通过类名与静态属性绑定。语法和一般的绑定有少许不同。Pete Brown 解释说

你会注意到,我们是对绑定语法做出了修改。你会用括号把命名空间、类和属性括起来,因为正如 Sam Bent 曾经和我说过“它们告诉我们要把路径解析为 ClassName.PropertyName 而不是 PropertyName.PropertyName。”

由于对属性的绑定经常需要变更通知(change notifications),所以 WPF 4.5 提供了两种设计模式。第一种是创建形式为“public static event EventHandler [PropertyName]Changed”的一次性事件。如果需要监控多个属性,那么就要使用一般目的的事件。这会使用“public static event EventHandler StaticPropertyChanged”的形式来声明。

另一种在 WPF 4.5 中增加的特性是延迟绑定(delay binding)。一般数据变更会立刻从控制器推给模型。当设置了延迟时,直到用户在指定的时间段内不再做变更,更新的值才会推给模型。Pete 提供了一些示例,还指出:

这种特性另一个有用的地方在于,你可以把数据绑定在想要捕获递增变更的 TextBox 上,但此时消耗的资源(例如一次搜索)在某种程度上比较高。在那种情况下,你可以稍微暂停等待一下,比方说在按键之间加 100 毫秒的等待,然后再执行搜索。

查看英文原文:Binding Enhancements in WPF 4.5
.NET语言 & 开发