意外と便利なDataFormについて

例えば下のようなPersonというclassを定義する。

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
.... (中略) ....
public class Person :IEditableObject {
[Required(ErrorMessage="名前は?")]
public string FirstName { get; set; }
[Required(ErrorMessage = "名字は?")]
public string LastName { get; set; }
[Range(0, 100, ErrorMessage = "範囲外です"), Display(Description = "なんか説明")]
public int Age { get; set; }
public void BeginEdit() { }
public void CancelEdit() {}
public void EndEdit() { }
}

値をセットしたものを単純にDataFormにバインドする。
 (xmlns:dataControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm"を定義しておく)

すると....

ちゃんとエラーチェックありで編集できるようなフォームが自動生成されます。

ちょっとしたメンテ画面には非常に便利です。