我有一个实现INotifyPropertyChanged
的Customer
类。在我的CustomerDetailsViewModel
课上,我有一个类型 Customer
的属性。在 XAML 中,每个文本框都绑定到我的视图模型公开的Customer
的每个属性。我将TwoWay
绑定与PropertyChanged
一起使用作为UpdateSourceTrigger
。
现在我想要一个"清除"按钮,它将清除所有文本框的内容。目的是允许用户使用另一个"添加"按钮创建新客户。仅当用户输入正确的文本时,才能启用"添加"按钮。即不应该有任何验证错误。
如何在不更新当前显示在 GUI 上的客户实例的绑定属性值的情况下清除所有文本框?
我的解决方案:一种方法可能是创建一个Customer
的新实例,并将所有属性(如名称、地址等)设置为空字符串。但问题是,当我创建新实例时,用户会在 GUI 上看到错误模板,因为验证(例如"不允许空名称")失败。
您可以使用 DataTrigger。像这样:
<DataTrigger Binding={Binding Text, ElementName=txtTextBox1} Value="">
据我了解,您应该做的是在使用 Clear 命令时取消绑定 Customer 对象,例如。 从绑定到接口的客户创建一个新客户。显示的验证错误只是有意的。
编辑:如果要使用验证错误来强制用户输入正确的数据,为什么要隐藏验证错误?我认为在尝试保存之前给出要求实际上更加用户友好。