Сначала вы захотите сделать так, чтобы ваш класс наследовал IDataErrorInfo
, который используется WPF для проверки.
public class MyClass : IDataErrorInfo
{
...
#region IDataErrorInfo Members
string IDataErrorInfo.Error
{
get { return null; }
}
string IDataErrorInfo.this[string columnName]
{
get
{
if (columnName == "PhoneNumber")
{
// Validate property and return a string if there is an error
return "Some error";
}
// If there's no error, null gets returned
return null;
}
}
#endregion
}
Затем скажите вашей привязке, что она должна проверять значение при его изменении.
<TextBox Text="{Binding Path=PhoneNumber, ValidatesOnDataErrors=True}" ... />
И, наконец, создайте шаблон проверки.Вот стиль / шаблон, который я обычно использую
<!-- ValidatingControl Style -->
<Style TargetType="{x:Type FrameworkElement}" x:Key="ValidatingControl">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
Path=(Validation.Errors)[0].ErrorContent,
RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>
</Style.Triggers>
</Style>