问题描述
|
我正在学习WPF。我现在开始绑定。使用using0ѭ时绑定是否依赖反射,价格是多少?我正在考虑使用WPF来显示通过UDP流传输的数据,但我担心与WinForms相比,开销可能会太大。
解决方法
这是有关它的MSDN文章。我经常听到这是一个很常见的问题。
但我的想法是,除非遇到严重的极端情况,否则您要在WPF中使用绑定。这就是整个系统的设计方式。
,绑定的性能取决于要绑定的对象的类型。不针对INotifyPropertyChanged使用反射,而是在解析CLR属性时使用反射。
Microsoft在以下方面有出色的著述:\“优化性能:数据绑定\”。
与绩效相关的关键细节:
如果源对象是CLR对象,并且源属性是CLR
属性,Windows Presentation Foundation(WPF)数据绑定
引擎必须首先在源对象上使用反射...这
反射操作的顺序可能非常耗时
从性能的角度来看。
解决对象引用的第二种方法涉及CLR
实现INotifyPropertyChanged接口的源对象,
源属性是CLR属性。在这种情况下,数据
绑定引擎直接在源类型上使用反射并获取
必需的属性。这仍然不是最佳方法,但是
与第一种方法相比,将减少工作集要求中的成本。
解决对象引用的第三种方法涉及一个源
对象是DependencyObject,而源属性是
DependencyProperty。在这种情况下,数据绑定引擎不会
需要使用反射。相反,属性引擎和数据
绑定引擎一起独立解析属性引用。
这是解析用于数据的对象引用的最佳方法
捆绑。
...
WPF允许您将数据绑定到XML内容;但是,数据绑定到
XML内容比将数据绑定到CLR对象要慢。不转换
如果CLR对象数据仅用于数据绑定,则将其数据转换为XML。
(强调)