我有一个wpf-mvvm应用程序。
在下面的代码中,“PartBPremiumBuydown”是类的实例。它有两个属性=> 1.价值。和2.HasValidationError。
属性“值”用于绑定到文本框。如果有任何验证错误......我可以设置HasValidationError = true吗?
<TextBox ToolTip="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}">
<TextBox.Text>
<Binding Path="PartBPremiumBuydown.Value"
ValidatesOnDataErrors="True"
UpdateSourceTrigger="PropertyChanged"
Converter="{x:Static localns:Converters.DecimalToCurrency}">
<Binding.ValidationRules>
<localns:CurrencyRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
答案 0 :(得分:1)
您应该PartBPremiumBuydown
实现IDataErrorInfo
界面,类似于以下代码:
public string Error { get; private set; }
public string this[string propertyName]
{
get
{
string mError = string.Empty;
if (propertyName == "Value"
&& !<insert your rule>)
{
mError = "Validation error text."
}
Error = mError;
return (string.IsNullOrWhiteSpace(mError))// if NOTHING
? null // then return null
: mError; // else return error
}
}
现在,当您将TextBox绑定到Value
时,如果用户输入的文本会破坏您的规则,则验证错误将显示在TextBox上。