Wpf 在验证错误时更新数据源
我有一个Wpf 在验证错误时更新数据源,wpf,validation,data-binding,Wpf,Validation,Data Binding,我有一个文本框,它绑定到下面的属性。它有一个带有自定义验证的双向绑定。如果验证未通过,并且出现错误,则绑定不会更新源。即使验证有错误,如何使源代码更新?我希望验证更像是一个警告,而不是一个错误 这是我的简化xaml: <TextBox> <TextBox.Text> <Binding Path="Value" UpdateSourceTrigger="PropertyChanged"> <Bind
文本框
,它绑定到下面的属性。它有一个带有自定义验证的双向绑定。如果验证未通过,并且出现错误,则绑定不会更新源。即使验证有错误,如何使源代码更新?我希望验证更像是一个警告,而不是一个错误
这是我的简化xaml:
<TextBox>
<TextBox.Text>
<Binding Path="Value"
UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validators:TelephoneNumberRule />
<validators:NotOptionalRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
谢谢。将
ValidationRule
的ValidationStep
属性设置为UpdatedValue
将使其在源属性更新后运行:
<TextBox>
<TextBox.Text>
<Binding Path="Value" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validators:TelephoneNumberRule ValidationStep="UpdatedValue" />
<validators:NotOptionalRule ValidationStep="UpdatedValue" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
这是正确的,但这也使验证器在值中获得一个
BindingExpression
,而不是字符串。我用这个问题解决了这个问题:
<TextBox>
<TextBox.Text>
<Binding Path="Value" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validators:TelephoneNumberRule ValidationStep="UpdatedValue" />
<validators:NotOptionalRule ValidationStep="UpdatedValue" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>