あてが外れた。

散々持ち上げといてなんですが、使えそうな情報は載ってませんでした(汗

関連がありそうなのは、妥当性チェックではエラーと警告が必要で、警告では確認を求める(特権者の承認が必要、警告にランクを与えて対応を分類など)処理が必要。確認後、処理を継続するか、中断するかの選択をユーザーができるようにする。
データの入力では入力直後に妥当性チェックが必要。Validationを使え。
ってとこぐらい(^^;

あとは自力で考えるしかないようです。

想定する環境は
業務システムでバックにデータベース。
構成はn階層。(.NET のアプリケーション アーキテクチャ[URL]の図1.0準拠)
なので、妥当性チェックのロジックはビジネスコンポーネントに配置。ユーザーインターフェイスコンポーネントで妥当性チェックを実行する。

各層の間のデータ交換は型付きDataSetを使用。
ユーザーインターフェイスはSystem.Windows.Forms.Formに限定。
コントロールとデータの紐付けはDataBindingsを使用する。

そして、チェックすべき内容は

  • 文字数
  • 文字種(数字、ローマ字、漢字、郵便番号やメールの形式チェック)
  • データの整合性(連番のIDや、マスタの存在チェック)
  • データの補正(補正なし、あり[Wide全角化|Narrow半角化|Upper|Lower|前後空白除去])

ぐらい。

実装方針としては、C#では文字数や文字種のチェックは正規表現を使えばよい。
データの整合性チェックまでいくと大変かな。

  • 事前にマスタが取得できるなら読み込んでおいてチェック。
  • それが無理ならそのときにデータベースなどに問合せる。

話しがややこしくなるので、まずは事前にマスタからデータが取得できると仮定。
そうすると、Validationに必要な情報としては「項目名(漢字)」「項目名(DB名)」「チェック用の正規表現」「補正条件」ぐらいでOK

んー、
これならDataColumnクラスに「DataColumnRegexPattern」プロパティとかつけて、妥当性チェックをフレームワーク側で自動化してくれても良さそうだよな(^^;

いかんいかん。「ねだるな!勝ち取れ!」の精神を忘れずに、自分でなんとかする方法を考えることにしよう。
以後、「項目名(漢字)」「項目名(DB名)」「チェック用の正規表現」=「DataColumnRegexPattern」と表記。

仮に、ビジネスコンポーネントから「DataColumnRegexPattern」の一覧が取得できるとしよう。
この場合、Form上のコントロールのValidatingイベントでチェック開始。
「DataColumnRegexPattern」の一覧から、該当する列を判断して、正規表現のチェックを実行。
失敗したらCancelEventArgs.Cancel = true;で終了。

こう考えると結構単純。
じゃないね。まだ「該当する列を判断」する手順が不明だ