如果需要从后面的代码访问 WPF 控件,则需要提供Name
在 XAML 中为其添加属性。
在许多情况下,您不需要从后面的代码访问控件,因为许多编码逻辑(例如绑定)最好直接在 XAML 中应用。
我的问题是:是否有性能提升not向控件提供名称属性?或者为页面上的所有控件命名是一个好习惯吗?
是的,不提供“名称”属性肯定会带来性能提升。
WPF 的“名称”机制可能很有用,但它以多种方式使用额外的 RAM 和 CPU:
- XAML 编译器在类中为每个命名对象分配一个额外的槽(每个 4 个字节)
- XAML 编译器将代码添加到您的类中以启动其中的每一个
- BAML 处理器回调您的代码以初始化每种情况下的名称
- BAML 处理器还将名称添加到字典中,每个名称需要额外 20+ 字节
- 当查找您真正需要的名称时,您可能会遇到与您并不真正需要的名称的字典冲突
对于简单的控件,向控件添加名称可能会使该控件的使用成本增加 5% 左右。这并不是很多,但为什么要把 CPU 周期和 RAM 浪费在不必要的名称上呢?
底线:如果您不需要为对象命名,就不要命名它们。通常,控件的内容或绑定足以识别控件的用途。如果这还不够,您可以随时使用免费的 XML 注释。
我不得不说这是一个非常bad习惯命名所有控件,不仅是因为成本,还因为它鼓励您通过名称引用控件,而不是使用正确的视图模型和绑定技术。我的大部分 XAML 都不使用“Name”any控制,更不用说全部了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)