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
子元素。