2

私は (レガシー) WinForms アプリケーションに取り組んでおり、MVC で慣れている方法でユーザーにエラー情報を提供するより動的な方法を実行したいと考えています。

ただし、WinForms での検証はインターフェイスを回避するように見えIDataErrorInfoますが、バインドに使用するオブジェクトにこのインターフェイスを実装するのは好きではありません。多くの場合、コマンド オブジェクトをインターフェイスにバインドできます。コマンドは、ビジネス オペレーションを記述する DTO であり、ドメイン レイヤーで定義されます (これらのコマンドを実行するためのロジックはビジネス レイヤーで定義されます)。

コマンドはドメインの一部であるため、コマンドを実装したくありません。これにより、コマンドがIDataErrorInfo検証ロジックと直接結合されるためです (IDataErrorInfoメソッドの 1 つを呼び出すと検証が前提となるため)。私がやりたいことは、コマンド プロパティを DataAnnotation 属性でマークすることだけです。

だから私の質問は、バインドに使用するクラスに実装することなく、WinForms で (を使用して) 検証を有効にするにはどうすればよいですか?ErrorProviderIDataErrorInfo

たとえば、ErrorProviderDataAnnotations のValidateクラスにフックして検証を委譲する方法はありますか?

4

2 に答える 2