绑定和x之间的区别:绑定

See*_*uD1 47 data-binding xaml win-universal-app uwp

什么在UWP中使用,Binding或者x:Bind它们之间有什么区别?

因为我看到人们使用的很多帖子,Binding我只x:Bind在UWP中绑定.

在MSDN首页只说:"通过创建装订物体{x:Bind}{Binding}在很大程度上是功能相当的." 那x:Bind.

但它们之间有什么区别?

因为"在很大程度上与功能相当"并不意味着相当.

我的报价链接:MSDN

所以我的问题是:

使用Binding或x有什么区别:在UWP中绑定?

Hen*_*man 49

以下可能并不完整,但有些主要区别是

  • 老式 {Binding }

    • 绑定到DataContext
    • 绑定到属性名称,灵活地了解实际的源类型


  • 新风格 {x:Bind }
    • 绑定到Framework元素(代码隐藏类)
    • 需要在编译时修复所有类型
    • 默认为更节俭的OneTime模式

开始建造14393,{x:Bind }支撑:

  • 直接BooleanToVisibility绑定,没有ValueConverter
  • 扩展功能绑定
  • 铸件
  • 字典索引器

较新的{x:Bind}在运行时稍快一些,但同样重要的是它会给错误的绑定带来编译错误.使用{Binding},您在大多数情况下只会看到一个空控件.

  • 我会添加示例来解释每个语句的含义。在我的特定情况下 **{Binding Data.Name, Mode=OneWay}** 不适用于更新(尽管 Data 和 Name 都在实现 _INotifyPropertyChanged_),但是 **{x:Bind Data.Name, Mode=OneWay} ** 完成了工作。 (2认同)

小智 9

{x:Bind}执行它在编译时生成的专用代码.{Binding}使用通用运行时对象检查.因此,{x:Bind}具有出色的性能并提供绑定表达式的编译时验证.它支持调试,允许您在代码文件中设置断点,这些代码文件是作为页面的部分类生成的.

因为{x:Bind}使用生成的代码来实现它的好处,所以它需要在编译时输入类型信息.这意味着您无法提前绑定到您不知道类型的属性.因此,您不能使用{x:Bind}Object类型的DataContext属性,并且在运行时也可能会更改.{x:Bind}用于Windows 10 的标记扩展 - 新的替代{Binding}.{x:Bind}缺少一些功能{Binding},但它运行时间短,内存少{Binding},支持更好的调试.

  • 你可以加入你引用的来源吗? (4认同)