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

Xaml 如何更改x:Bind的默认模式?,xaml,uwp,windows-10,xbind,Xaml,Uwp,Windows 10,Xbind,我不知道为什么他们决定将模式的默认值设置为OneTime,但这不是我大多数时候想要的。它浪费了我一整天的时间在调试上 有没有办法将x:Bind的模式的单向值设置为默认值 <!--This will not listen to future changes. it is OneTime by default--> <TextBlock Text="{x:Bind Name}"/> <!--We have to explicitly define Mode value

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

有没有办法将
x:Bind
模式
单向
值设置为默认值

<!--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}"/>

我认为这是设计的。如果要使用单向作为默认值。你可以用

就目前而言,这种结合应该比以前更牢固

Windows10新的{x:Bind}标记扩展是{Binding}的替代。{x:Bind}缺少{Binding}的一些特性,但是它比{Binding}运行的时间和内存更少,并且支持更好的调试

TL:DR:不,不可能更改内置控件上的绑定模式

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

首先,
x:Bind
是一个编译绑定。在编译期间,XAML被转换为强类型代码,这比
{Binding}
使用的运行时对象检查要快

其次,它通过使用
OneTime
绑定对自身性能进行了优化<代码>单向
双向
绑定需要基础结构监视和回滚更改

可以选择将绑定对象配置为观察数据源属性值的更改,并根据这些更改刷新自身。还可以选择将其配置为将其自身值中的更改推回到源属性

在过去,所有内容都是单向的,带有
{Binding}
,这意味着每个字段的性能都会受到轻微的影响,即使是那些只需要绑定一次的字段(因为如果它能正常工作,为什么还要麻烦改成一次性的
)。现在,您不得不考虑哪些字段应该可以更新,从而使用更多的资源


有关x:Bind on的详细信息。

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

x:DefaultBindMode="OneWay"
在任何父xaml元素上,对于未显式设置
模式
属性的节点的子节点,默认值将保持不变


谢谢,这个答案应该更新。从Windows 10 Build 14393开始,有一个
x:DefaultBindMode
属性可用于所有
x:Bind
子元素。