2009-05-20 9 views
3

モデルビュープレゼンターアーキテクチャでUI検証を行う方法に関するベストプラクティスのアプローチを探しています。Model-View-Presenter:UIの検証

いくつかのフォームを多数のコントロールで検証する必要があります。そして、ユーザーにとっては簡単にするために、すべてのエラーまたは警告をコントロールへの参照とともにログに保存します。ログは、後でユーザーに表示され、修正する必要があるコントロールにすぐにジャンプできます。これはビュー部分で行われますが、実際には間違っています。これは、ビューを交換するためにプレゼンテーションを検証する必要があるためです。

プレゼンターでこの検証を実行する際の問題は、提供された値が間違っているかどうかだけではなく、テキストボックスを有効にするradiobuttonsがチェックされているかどうかをチェックする必要があります例えば。

私はBindingSourceをプレゼンターで使用することを考えていました。これは、UIの変更を反映しており、プレゼンターが見ることができるからです。しかし、これが正しい方法であるかどうかはわかりません(そして、それは醜いと思います)。

ところで、検証はデータベースに書き込む前に行うだけではありません。ユーザがフォーム上で作業している間に既に行われます。

誰もがこれを行う良い方法を考えることができますか?

答えて

2

最終的に解決策が見つかりました。 私は期待通りに、異なるバリデータークラス(私たちの "ページ"ごとに1つ)によって処理される発表者のデータセットを使用して行われます。最も難しい部分は、コントロールがお互いに依存している場合です(しかし、最後には、値がDataSetに設定されているかどうかを確認するだけです)。現在のところ、エラーを修正するためにコントロールにジャンプすることはできませんが、後でLogEntriesにコントロールの名前を渡すことによってReflection経由で追加され、ビューはこのコントロールがどこにあるかを把握できます。