Windows 10 UAP - 编译数据绑定

Sim*_*tes 9 c# windows xaml binding win-universal-app

根据Windows 10 SDK启动视频(http://www.microsoftvirtualacademy.com/training-courses/a-developers-guide-to-windows-10-preview?prid=ch9courselink),有一种新的绑定类型Windows 10通用应用程序平台称为"编译数据绑定".

代替

"{Binding Path=..."
Run Code Online (Sandbox Code Playgroud)

新的风格是

"{x:Bind Path=..."
Run Code Online (Sandbox Code Playgroud)

但是,这只会引发编译器错误,即放置=后面的任何内容都不存在于上下文中.
设置

"{x:Bind Path=DataContext...."
Run Code Online (Sandbox Code Playgroud)

也不起作用.
有没有人设法让新的绑定工作?是否有关于该主题的任何文档,因为我似乎无法找到任何东西(甚至没有你可以"逆转engeneer"的样本......

更新:
感谢Nick的回复,我可以添加以下内容:
由于我通常在初始化Page/UserControl后插入视图模型,因此Page/UserControl似乎没有注意到更新的ViewModel属性(即使Page/UserControl实现并且"触发" "INotifyPropertyChanged".显然,Pages/UserControls中有一个名为Bindings的新字段,可以强制重置所有已编译的数据绑定.

因此,一旦您更改了ViewModel(或x:Bind引用的其他属性),您只需调用:

Binding.UpdateAll()
Run Code Online (Sandbox Code Playgroud)

这样,Page/UserControl重新评估所有已编译的数据绑定并接受"数据上下文切换".

小智 8

希望这会 有所帮助 - http://nicksnettravels.builttoroam.com/post/2015/04/26/Compiled holidaysBinding - in - Windows - Universal - Applications-(UAP).aspx这解释了上下文是什么以及如何一些生成编译的绑定