Il semble que quelqu'un d'autre est d'avoir cette question: Validation.HasError does not trigger again if new error comes in while already trueIDataErrorInfo avec des messages d'erreur multiples pour un bien
Le Validation.Error n'est pas mise à jour avec le dernier message d'erreur.
Il montre l'erreur précédente et non celle qui a été appelée en dernier. Lorsque je consigne chaque retour, PropertyX est supérieur à ou PropertyX est inférieur à ce qui est retourné, mais il n'affiche pas ce message dans mon info-bulle. Il affichera "Obligatoire".
J'ai également trouvé que mon convertisseur pour l'info-bulle n'est pas appelé lorsque PropertyX est supérieur à ou PropertyX est inférieur à ce qui est retourné.
Voici le code de validation:
string this[string columnName]
{
get
{
switch(columnName)
{
case "Property1":
int output;
if (true == string.IsNullOrEmpty(this.Property1))
{
return "Required";
} else if (true == int.TryParse(this.Property1, out output))
{
return "Invalid integer";
} else if (true == this.Property1Int.HasValue &&
true == this.Property2Int.HasValue)
{
if (this.Property1Int.Value < this.Property2Int.Value)
{
return "Property2 is greater than Property1";
}
}
break;
case "Property2":
int output;
if (true == string.IsNullOrEmpty(this.Property2))
{
return "Required";
} else if (true == int.TryParse(this.Property2, out output))
{
return "Invalid integer";
} else if (true == this.Property1Int.HasValue &&
true == this.Property2Int.HasValue)
{
if (this.Property2Int.Value > this.Property1Int.Value)
{
return "Property2 is greater than Property1";
}
}
break;
};
return string.Empty;
}
}
Que se passe-t-il?
Il est probablement impossible, parce que si elle a été autorisée comme dans Silverlight, nous avons une méthode qui renvoie IEnumerable et pas une seule chaîne. – vorrtex
duplication possible de [Validation.HasError ne se déclenche plus si une nouvelle erreur est présente alors que c'est déjà vrai] (http://stackoverflow.com/questions/4606509/validation-haserror-does-not-trigger-again-if-new- error-come-in-while-already-tr) – kevindaub
Pouvez-vous ajouter comment vous lier cette erreur? Est-ce la même chose qu'une copie? – Euphoric