自定义验证规则不起作用

本文关键字:不起作用 规则 验证 自定义 | 更新日期: 2023-09-27 18:28:10

下面的代码不起作用。我让它在没有验证的情况下工作,我的意思是我在MyClassset中设置了一个标准,它确实工作了。但是,当我尝试验证规则时,它不起作用。

class MyClass
{
    private string num;
    public string MyString
    {
        get
        {                    
            return num;
        }
        set
        {
            num = value;             
        }
    }
}
public class MyValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        float num = System.Convert.ToSingle(value);
        // Is positive?
        if (num < 0)
        {                    
            return new ValidationResult(false, "Must be positive");
        }
        // Number is valid
        return new ValidationResult(true, null);
    }
}
public MainWindow()
{
    InitializeComponent();
    mc = new MyClass();
    Binding b = new Binding(mc.MyString);
    b.Mode = BindingMode.TwoWay;
    b.ValidationRules.Add(new MyValidationRule());
    b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
    MyTextBox.DataContext = mc;
}

自定义验证规则不起作用

您的绑定似乎已断开。此:

Binding b = new Binding(mc.MyString);

应该是:

Binding b = new Binding("MyString");

此外,我甚至没有看到任何对SetBinding的调用。

(如何调试绑定)