如何更改 x:Bind 的默认模式?

How to change default mode of x:Bind?

我不知道为什么他们决定将 Mode 的默认值设置为 OneTime 但大多数时候这不是我想要的。它浪费了我一整天的调试时间。

有没有办法将 OneWay 值设置为 x:BindMode 的默认值?

<!--This will not listen to future changes. it is OneTime by default-->
<TextBlock Text="{x:Bind Name}"/>

<!--We have to explicitly define Mode value-->
<TextBlock Text="{x:Bind Name, Mode=OneWay}"/>

我认为这是设计使然。如果你想使用 OneWay 作为默认值。你可以使用 Binding

目前,绑定应该比X:Bind强。

The {x:Bind} markup extension—new for Windows 10—is an alternative to {Binding}. {x:Bind} lacks some of the features of {Binding}, but it runs in less time and less memory than {Binding} and supports better debugging.

TL:DR:不可以更改 built-in 控件上的绑定模式。

x:Bind 以及其他一些标记扩展,如 x:Phase 都被添加以提高 性能 。请记住,UWP 应用程序可以 运行 在台式机上,也可以在最小的物联网设备上运行,因此性能是关键。

首先,x:Bind是编译绑定。在编译期间,XAML 被转换为后面的强类型代码,这比 {Binding}.

使用的 运行time 对象检查更快

其次,它使用 OneTime 绑定针对性能本身进行了优化。 OneWayTwoWay 绑定需要基础架构来监视和推送更改。

The binding object can optionally be configured to observe changes in the value of the data source property and refresh itself based on those changes. It can also optionally be configured to push changes in its own value back to the source property.

过去所有的东西都是 OneWay{Binding},这意味着每个字段的性能都会受到很小的影响,即使是那些只需要绑定一次的字段(因为你为什么要费心去改变到 OneTime 如果它正常工作)。现在你不得不考虑哪些字段应该是 update-able 从而使用更多的资源。

有关 MSDN 的 x:Bind 的更多信息。

从Windows10开始,版本1607(周年更新),SDK版本14393可以设置

x:DefaultBindMode="OneWay"

在任何父 xaml 元素上,对于未明确设置 Mode 属性.

的该节点的子节点,默认值将持续存在

Here you can read more about it.