WPF で Validation を使用しようとしています。以下に示すように、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 を解決できません。名前空間を入れてみましたが、うまくいかないようです。