ich eine Kontrolle mit dieser Validierung habenWPF ValidationRule Validate, wenn die Steuerung geladen wird
<MyPicker.SelectedItem>
<Binding Path="Person.Value" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
<Binding.ValidationRules>
<rules:MyValidationRule ValidationType="notnull"/>
</Binding.ValidationRules>
</Binding>
</MyPicker.SelectedItem>
Dies ist die Validation Klasse:
class MyValidationRule : ValidationRule
{
private string _validationType;
public string ValidationType
{
get { return _validationType; }
set { _validationType = value; }
}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
ValidationResult trueResult = new ValidationResult(true, null);
switch (_validationType.ToLower())
{
case "notnull": return value == null ? new ValidationResult(false, "EMPTY FIELD") : trueResult;
default: return trueResult;
}
}
}
Frage: Wenn die Eigenschaft geändert wird, dann wird die Validate () Methode wird aufgerufen, die korrekt ist.
Aber diese Methode ganz am Anfang aufrufen, wenn das MyControl erstellt wird? Ich brauche sofort nach initialize zu beweisen, wenn die dort in der Steuerung ein Nullwert ist (und einen Überprüfungsfehler angezeigt)