当我们绑定到异构的对象集合时,并非所有对象都具有相同的属性集。在输出窗口中,我们收到如下消息:
System.Windows.Data错误:39: BindingExpression路径错误: 未找到'RoundingFactor'属性 'object'''MultiLineTextMarkingScheme' (的HashCode = 7262386)”。 BindingExpression:路径= RoundingFactor; ..........
这似乎不是例外,但我们担心它会对性能产生影响。
我们是否应该关注并创建一个视图模型,其中包含我们希望绑定的所有属性(并且底层元素上不存在的属性返回null)或者我们可以保留它。
这种情况经常发生在可能存在大量这些绑定失败的网格场景中。
答案 0 :(得分:16)
我自己没有对此进行测试,但blog post from the Visual Studio team表示绑定错误确实会影响性能:
WPF尝试了几种不同的方法来解决路径错误,包括搜索附加属性,这非常昂贵。
答案 1 :(得分:6)
您只看到该输出,因为您在Visual Studio中运行。通常这些跟踪语句无处可去,因为没有跟踪侦听器。无论哪种方式,性能影响都完全可以忽略不计。
另一方面,例外情况是报告绑定失败的一种非常昂贵的方式,特别是因为 - 正如您所注意到的那样 - 通常有一些绑定对某些对象起作用而不是其他对象。