DataAnnotations を介して Silverlight 5 アプリケーション内のデータを検証しようとしています。プロパティのセッター内で検証する限り、正常に機能するカスタム ValidationAttributes をいくつか作成しました。ユーザーがこの検証を行っているデータフォームを開いて、プロパティを変更せずに「保存」ボタンを押すと、オブジェクト全体を検証したいと思います。この部分で、私の実装は期待どおりに機能しません。Validator.TryValidateObject() を使用するメソッドを作成しました。結果では、ValidationExceptions がスローされていることがわかりますが、UI には表示されません。私が間違っていることを誰かが知っていますか?システムは、例外がスローされたプロパティを認識していないと思いますか?
public bool ValidateObject()
{
var validationItems = new List<ValidationResult>();
var result = new List<ValidationResult>();
Validator.TryValidateObject(this, new ValidationContext(this), result, true);
if (result.Count > 0)
{
foreach (var error in result)
{
throw new ValidationException(error.ErrorMessage = LanguageManager.Instance.GetLanguageString(error.ErrorMessage));
}
}
return result.Count != 0;
}
LanguageManager は、現在選択されている言語でエラー メッセージを返すオブジェクトです。
ご助力ありがとうございます。