【发布时间】:2013-03-06 11:11:55
【问题描述】:
我有一个简单的 WinRT(Win8、.NET/C#/XAML)项目。我的 XAML TextBox 控件之一附加了一个自定义 StringValueConverter,它格式化来自视图模型的数据绑定值。
这很好用,但它缺少一件事:当用户更改 TextBox 中的值(例如:货币值)并离开 TextBox 时,应自动应用转换器。到目前为止,View Model 中的数据绑定值已更新,但 View 并未再次应用转换器。
是否有任何内置解决方案或任何已知的自定义解决方案?
【问题讨论】:
-
您的 ViewModel(我假设是您的 DataContext)是否继承自 BindableBase 类(或以其他方式实现 INotifyPropertyChanged 类)?您必须通知 UI 该值已更改。
-
这不是很奇怪吗?当用户更改 UI 上的值时,为什么我必须再次从 View Model 触发 UI 来更新(格式化)值? (逻辑上)对我来说没有多大意义。当然,视图模型(或绑定的数据项)实现了 INotifyPropertyChanged。否则,整个数据绑定将无法正常工作。
标签: xaml data-binding windows-8 winrt-xaml ivalueconverter