如何在WPF XAML中声明命名空间?

26

我正在尝试在WPF中使用验证规则来验证绑定数据控件的输入。在WPF窗口的代码后台文件中,我有一个类:

public class posintValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        string _strInt = value.ToString();
        int _int = -1;
        if (!Int32.TryParse(_strInt, out _int))
            return new ValidationResult(false, "Value must be an integer");
        if (_int < 0)
            return new ValidationResult(false, "Value must be positive");
        return new ValidationResult(true, null);
    }
}

在XAML中还有一个样式错误模板。
当我在XAML中放置带验证的文本框:
<TextBox.Text>
    <Binding Path="seconds" UpdateSourceTrigger="PropertyChanged">
        <Binding.ValidationRules>
           <local:posintValidationRule/> 
        </Binding.ValidationRules>
    </Binding>
</TextBox.Text>

我遇到编译时错误:''local' 是未声明的命名空间。'XML不是有效的。

我应该如何在我的XAML中声明local:posintValidationRule

1个回答

51

在你的XAML文件顶部,你需要声明你的“本地”命名空间,以及默认的Microsoft XAML相关内容。例如:

xmlns:local="clr-namespace:YourApplication"
请注意,这假设“posintValidationRule”在“YourApplication”的根命名空间中被定义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接