Xaml x:Bind与经典绑定相比如何,尽可能简洁?

Xaml x:Bind与经典绑定相比如何,尽可能简洁?,xaml,windows-runtime,windows-10,uwp,Xaml,Windows Runtime,Windows 10,Uwp,编译后的绑定x:Bind与经典绑定不同,它是如何尽可能简洁地放置的?经典绑定使用反射来获取要绑定的属性值。X:Bind在编译时创建一个类来获取值,因此绑定会更快 与经典绑定相比,您不能将以下绑定属性用于x:Bind:ElementName、RelativeSource、Source和UpdateSourceTrigger。好吧,这几乎总结了x:Bind的局限性,但是x:Bind本身就很强大——值得注意的一点是编译绑定,从而提高了性能。查看x:Bind军械库中另一个强大的东西的最后一点 需要始终记

编译后的绑定x:Bind与经典绑定不同,它是如何尽可能简洁地放置的?

经典绑定使用反射来获取要绑定的属性值。X:Bind在编译时创建一个类来获取值,因此绑定会更快

  • 与经典绑定相比,您不能将以下绑定属性用于x:BindElementNameRelativeSourceSourceUpdateSourceTrigger。好吧,这几乎总结了x:Bind的局限性,但是x:Bind本身就很强大——值得注意的一点是编译绑定,从而提高了性能。查看x:Bind军械库中另一个强大的东西的最后一点

  • 需要始终记住的一点是:x:Bind的数据上下文是类背后的代码。要将x:Bind绑定到ViewModel类,只需为page DataContext添加ViewModel对象引用前缀

  • 另一点要记住的是,默认绑定模式是OneTime,而单向双向模式也可用。如果绑定似乎不起作用,则该绑定可能处于默认模式,并且超过了一次性触发器。为了避免此类错误,请明确定义绑定模式

  • 我的最爱——使用x:Bind绑定事件——现在您可以轻松实现事件到方法模式。在XAML中,忘记
    Tapped=“MyTapHandlerInCodeBehind”
    代码,开始使用x:Bind变量
    Tapped=“{x:Bind ViewModel.MyTapHandlerInViewModel}”
    。不过,一个小缺点是不能像经典事件处理程序那样传递参数,但这不是常见的用例,存在一种替代方法


这很酷,MSFT最终实现了默认绑定到后台代码的价值。对于那些几乎完全创建用户控件的用户来说,这是一件好事。