如何在不更新其双向绑定源的情况下清除 WPF 文本框



我有一个实现INotifyPropertyChangedCustomer类。在我的CustomerDetailsViewModel课上,我有一个类型 Customer 的属性。在 XAML 中,每个文本框都绑定到我的视图模型公开的Customer的每个属性。我将TwoWay绑定与PropertyChanged一起使用作为UpdateSourceTrigger

现在我想要一个"清除"按钮,它将清除所有文本框的内容。目的是允许用户使用另一个"添加"按钮创建新客户。仅当用户输入正确的文本时,才能启用"添加"按钮。即不应该有任何验证错误。

如何在不更新当前显示在 GUI 上的客户实例的绑定属性值的情况下清除所有文本框?

我的解决方案:一种方法可能是创建一个Customer的新实例,并将所有属性(如名称、地址等)设置为空字符串。但问题是,当我创建新实例时,用户会在 GUI 上看到错误模板,因为验证(例如"不允许空名称")失败。

您可以使用 DataTrigger。像这样:

<DataTrigger Binding={Binding Text, ElementName=txtTextBox1} Value="">

据我了解,您应该做的是在使用 Clear 命令时取消绑定 Customer 对象,例如。 从绑定到接口的客户创建一个新客户。显示的验证错误只是有意的。

编辑:如果要使用验证错误来强制用户输入正确的数据,为什么要隐藏验证错误?我认为在尝试保存之前给出要求实际上更加用户友好。

相关内容

  • 没有找到相关文章

最新更新