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