在 WPF 中,只要用户通过像这样利用 UpdateSourceTrigger 对数据进行任何更改,我们就可以更新底层数据模型:
<TextBox Text="{Binding Path=TextProperty, UpdateSourceTrigger=PropertyChanged}"/>
在 Window Phone 中,UpdateSourceTrigger 未包含在 XAML 规范中,为了实现同样的目的,TextChanged 处理程序是必需的,如下所示:
(sender as TextBox).GetBindingExpression(TextBox.TextProperty).UpdateSource();
在 Windows 8 中,我假设 UpdateSourceTrigger 也会被省略——我是对的。然而,我很惊讶地发现 GetBindingExpression() 也不见了。
在 Windows 8 中,我们在 WPF 中使用 UpdateSourceTrigger 和在 Windows Phone 中使用 GetBindingExpression().UpdateSource() 完成的最佳技术是什么?
请注意:此问题适用于 Windows 8 (Metro) 开发;这另一个问题(“UpdateSourceTrigger=PropertyChanged”等效于 Windows Phone 7 TextBox)适用于 Windows Phone 开发 - 不要混淆。
作为一项研究,这个示例(我创建的)使用 TextBox 覆盖来交换导致更新的两个属性之间的文本值。正是基于此。但是,有没有更好的方法?优雅的东西?