【发布时间】:2019-02-03 03:19:57
【问题描述】:
我的视图中有一个TextBox,绑定到我的视图模型中的一个属性MyText。我还有一个ValidationRule 用于输入。
这是我视图中的TextBox:
<TextBox>
<TextBox.Text>
<Binding Path="MyText"
UpdateSourceTrigger="PropertyChanged"
Mode="TwoWay"
ValidatesOnNotifyDataErrors="True"
ValidatesOnDataErrors="True"
NotifyOnValidationError="True">
<Binding.ValidationRules>
<local:FormulaValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
这是我的验证类:
Public Class MyTextValidationRule
Inherits ValidationRule
Public Overrides Function Validate(value As Object, cultureInfo As CultureInfo) As ValidationResult
Dim validationRes = MyParser.ValidateText(value)
If validationRes Then
Return ValidationResult.ValidResult
Else
Return New ValidationResult(False, "Input is not valid")
End If
End Function
End Class
我想要的是我的属性MyText 得到更新,即使输入的文本无效,但是,就像我现在所拥有的一样,只有当文本有效时属性才会更新.有什么方法可以做到吗,即更新属性,或访问我的TextBox 的文本?
【问题讨论】:
-
试试 ValidationRule 类的 ValidationStep 属性docs.microsoft.com/en-us/dotnet/api/…
标签: .net wpf mvvm binding validationrules