在我目前的项目中,我必须处理 WPF 表单中的数据验证。我的表单位于 ResourceDictionnary 的 DataTemplate 中。我可以通过两个按钮来保存和加载表单中的数据,这两个按钮可以序列化和反序列化数据(通过两个DelegateCommand)。
如果我的表单的一个字段为空或无效,则保存按钮将被禁用。由于 UpdateSourceTrigger 属性,每次更改时都会检查一个字段。这就是为什么我需要在我的 C# 代码中知道某个字段是否无效以更新我的保存命令。
目前,我在我的 XAML 绑定中使用了 ExceptionValidationRule,我想知道这是否是一个好习惯。我无法实现 ValidationRule,因为我需要在我的 C# 代码中知道字段是否无效,以更新保存命令(启用或禁用保存按钮)。
<TextBox>
<Binding Path="Contact.FirstName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox>
在此博客中,我们可以阅读:
在 Setter 中引发异常并不是一个很好的方法,因为这些属性也是由代码设置的,有时可以暂时将它们保留为错误值。
我已经阅读了这篇文章,但我不能使用它,我的 TextBox 在 DataTemplate 中,我不能在我的 C# 代码中使用它们。
所以,我想知道我是否应该更改我的数据验证并且不要使用 ExceptionValidationRule。