IValueConverterでの変換エラーをViewModelから検知したい
WPFアプリケーションをMVVMで開発しています。
VS2013/.NET4.5/C#です。
TextBox
などに適用したIValueConverter
のConvertBack
で型の変換に失敗したとき、それをViewで表示するとともに、ViewModelからも任意のタイミングでその情報を得られるようにしたいです。
例えば、エラーが解消されないうちは、登録処理を実行できないようにする、といった制御を考えています。
ConvertBack
で発生したエラーをViewに通知する方法は、英語版StackOverflowの質問を見て、ValidationResult
を返すという方法で実現することができましたが、ViewModelからそれを知る方法が分かりません。
こちらのページで検証エラーをViewModelから知る方法が掲載されていましたが、上記の英語版StackOverflowのやり方との組み合わせでは、検証エラーのイベントが発生せず(private void ErrorHandler
が呼ばれない)、実現できませんでした。
もしかすると、使い方が間違っているだけで、本当はIValueConverter.ConvertBack
でValidationResult
を返すと、検証エラーのイベントが発生するはずなのでしょうか?
あるいは他に、正しいやり方があるのでしょうか?