【发布时间】:2016-06-18 02:38:46
【问题描述】:
我有一个实现INotifyPropertyChanged 的Customer 类。在我的CustomerDetailsViewModel 类中,我有一个Customer 类型的属性。在 XAML 中,每个文本框都绑定到我的视图模型公开的 Customer 的每个属性。我使用TwoWay 绑定和PropertyChanged 作为UpdateSourceTrigger。
现在我想要一个“清除”按钮来清除所有文本框的内容。意图是允许用户使用另一个“添加”按钮创建新客户。只有当用户输入正确的文本时,才必须启用“添加”按钮。即不应该有任何验证错误。
如何清除所有文本框不更新当前显示在 GUI 上的 Customer 实例的绑定属性的值?
我的解决方案:
一种方法是创建Customer 的新实例,并将所有属性(如名称、地址等)设置为空字符串。但问题是,当我创建新实例时,用户会在 GUI 上看到错误模板,因为验证(如“不允许空名称”)失败。
【问题讨论】:
-
您是否尝试过 UpdateSourceTrigger 丢失焦点或删除 UpdateSourceTrigger 属性,因为它是一个文本框。
标签: .net wpf binding wpf-controls inotifypropertychanged