在UWP中使用什么,Binding
或x:Bind
以及它们之间的区别是什么?
因为我看到很多帖子,人们使用Binding
而我只在UWP中与x:Bind
绑定。
在MSDN主页上,它只说“{x:Bind}
和{Binding}
创建的绑定对象在功能上大致相同。”并且x:Bind
更快。
但它们之间有什么区别?
因为“在很大程度上与功能相当”并不等同。
我的报价链接:MSDN
所以我的问题是:
使用Binding或x有什么区别:在UWP中绑定?
答案 0 :(得分:44)
以下内容可能并不完整,但有些主要区别是
旧样式{Binding }
{x:Bind }
而starting with build 14393,{x:Bind }
支持:
较新的{x:Bind}在运行时稍微快一些,但同样重要的是它会给错误的绑定带来编译错误。使用{Binding},您在大多数情况下只会看到一个空控件。
答案 1 :(得分:7)
{x:Bind}
执行特殊用途代码,它在编译时生成。 {Binding}
使用通用运行时对象检查。因此,{x:Bind}
具有出色的性能,并提供绑定表达式的编译时验证。它支持调试,允许您在作为页面的部分类生成的代码文件中设置断点。
因为{x:Bind}
使用生成的代码来实现其好处,所以它需要在编译时输入类型信息。这意味着您无法提前绑定到您不知道类型的属性。因此,您不能将{x:Bind}
与DataContext属性一起使用,该属性的类型为Object,并且在运行时也可能会更改。
{10}的{x:Bind}
标记扩展程序 - 是{Binding}
的替代。 {x:Bind}
缺少{Binding}
的某些功能,但它运行的时间少,内存少于{Binding}
,并支持更好的调试。