かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Validation Application Block Integration WinForms

Validation Application BlockをWindows Formに統合するのは凄い簡単!!!

  1. Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinFormsを参照設定する。
  2. ツールボックスにValidationProviderコンポーネントを追加する。
  3. フォームに落とす。
  4. ErrorProviderもフォームに落とす
  5. ValidationProviderのErrorProviderプロパティを設定する
  6. ValidationProviderのSourceTypeプロパティを設定する
    1. SourceTypeプロパティには 型名, アセンブリ名の形で付ける(Hoge.Person, Hogeみたいに)
  7. フォーム上のコントロールにValidationProviderの〜っていうプロパティが追加されるので設定する
    1. PerformValidationをtrue
    2. SourcePropertyNameをSourceTypeに指定したクラスのプロパティ名にする
    3. ValidatedPropertyをコントロールのプロパティ名にする(大体Textになるとおもう)

多分これでOK

任意のタイミングで検証したいときは、FormのValidateChildrenを呼ぶとかすれば良さげ。
Validationエラーがあっても、コントロールからフォーカス移動できるようにするには、FormのAutoValidateプロパティをEnableAllowFocusChangeにすると良さげ。