Я пытаюсь использовать валидацию в WPF. Я создал NotNullOrEmptyValidationRule, как показано ниже:
public class NotNullOrEmptyValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
if (String.IsNullOrEmpty(value as String))
return new ValidationResult(false, "Value cannot be null or empty");
return new ValidationResult(true, null);
}
}
Теперь мне нужно использовать его в моем приложении. В моем файле App.xaml я объявил Стиль для TextBox. Вот декларация.
<Style x:Key="textBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="Green"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self},Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
Теперь я хочу использовать его в моем TextBox, поэтому я использую следующий код:
<TextBox Style="{StaticResource textBoxStyle}">
<TextBox.Text>
<Binding>
<Binding.ValidationRules>
<NotNullOrEmptyValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Ошибка появляется в теге NotNullOrEmptyValidationRule. Средство проверки синтаксиса XAML не может разрешить NotNullOrEmptyValidationRule. Я даже пытался поместить пространство имен, но, похоже, оно не работает.