WPF绑定失败性能命中率与异常

时间:2010-04-07 00:11:35

标签: wpf performance data-binding exception

当我们绑定到异构的对象集合时,并非所有对象都具有相同的属性集。在输出窗口中,我们收到如下消息:

  

System.Windows.Data错误:39:   BindingExpression路径错误:   未找到'RoundingFactor'属性   'object'''MultiLineTextMarkingScheme'   (的HashCode = 7262386)”。   BindingExpression:路径= RoundingFactor; ..........

这似乎不是例外,但我们担心它会对性能产生影响。

我们是否应该关注并创建一个视图模型,其中包含我们希望绑定的所有属性(并且底层元素上不存在的属性返回null)或者我们可以保留它。

这种情况经常发生在可能存在大量这些绑定失败的网格场景中。

2 个答案:

答案 0 :(得分:16)

我自己没有对此进行测试,但blog post from the Visual Studio team表示绑定错误确实会影响性能:

  

WPF尝试了几种不同的方法来解决路径错误,包括搜索附加属性,这非常昂贵。

答案 1 :(得分:6)

您只看到该输出,因为您在Visual Studio中运行。通常这些跟踪语句无处可去,因为没有跟踪侦听器。无论哪种方式,性能影响都完全可以忽略不计。

另一方面,例外情况是报告绑定失败的一种非常昂贵的方式,特别是因为 - 正如您所注意到的那样 - 通常有一些绑定对某些对象起作用而不是其他对象。