自定义验证规则不起作用
本文关键字:不起作用 规则 验证 自定义 | 更新日期: 2023-09-27 18:28:10
下面的代码不起作用。我让它在没有验证的情况下工作,我的意思是我在MyClass
的set
中设置了一个标准,它确实工作了。但是,当我尝试验证规则时,它不起作用。
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
的调用。
(如何调试绑定)