下面的代碼不起作用。我做了沒有驗證的工作,我的意思是我在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;
}
爲什麼不使用XAML? – 2012-03-19 12:23:09
因爲該文本框在另一個窗口中。我無法用XAML來完成。 – Shibli 2012-03-19 12:40:24
我不認爲你應該這樣做... – 2012-03-19 12:41:31