none
IValueConverterでの変換エラーをValidationエラーにするには? RRS feed

  • 質問

  • Bindingで、Converterを指定している時に、Converterで変換出来なかった事を、

    Validationエラーとして設定したいのですが、方法が解りません。

     

    Bindingには、ValidatesOnExceptionsをtrueに指定しています。

    Validation.ErrorTemplateアタッチプロパティにもスタイルを設定しています。

     

    ですが、Converterの中で例外をthrowするとアプリが落ちてしまいます。

     

    何かやり方がまずいのでしょうか ?

    2008年9月25日 11:24

回答

  • 自己レスです。

     

    IValueConverterからの戻り値を、引数valueで返すようにすると、ValidationErrorになりました。

    調査をしていた時には、例外を返したり、Binding.DoNothingを返したり、ValidationResultを返したりしてました。

     

    ただ、Converterでは変換できないが、デフォルトのコンバーター(?)では変換できる場合には、正常な値と判断されます。まぁ、現状としてはこれは問題にはなっていないので良しとします。

    (例:日付で、yyyy/mm/ddしか許したくない場合でも、日付文字列からDateTimeに変換できる場合にはOKとなる・・・。 ただ、この場合はValidationRuleを使用するのが正解でしょう。)

     

    2008年9月26日 2:00