我想在WPF中使用驗證。我創建了一個NotNullOrEmptyValidationRule,如下所示:在依賴屬性和樣式觸發器的WPF中使用驗證
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 Style="{StaticResource textBoxStyle}">
<TextBox.Text>
<Binding>
<Binding.ValidationRules>
<NotNullOrEmptyValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
的錯誤出現在標籤上NotNullOrEmptyValidationRule。 XAML語法檢查器無法解析NotNullOrEmptyValidationRule。我甚至嘗試過放入命名空間,但它似乎不起作用。