Ниже приведен код, который не работает.Я заставил это работать без проверки, я имею в виду, что я установил критерий внутри 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;
}