追加ボタンを有効か

 DataFormの追加ボタンを有効化するため、DataFormは必ずList型のデータをバインドする必要があります。  

編集をキャンセル

ストーリ:
 画面にあるボタンを配置して、ボタンをクリックしたら、DataFormに新しいデータを生成させます。   問題:
 ボタンをクリックして、生成したデータを修正を加えたら、もう一回ボタンがクリックすると、下記のような「InvalidOperationException」の例外が発生します。  

Cannot change currency when an item has validation errors or it is being edited and AutoCommit is false.
Set ItemsSource to a ICollectionView to manage currency instead.

  検証:
 ボタンのクリックイベントに下記にような、編集をキャンセルメソッドを実装しても、動作しません。  

this.dataForm1.CancelEdit();

解決策:

 上記のCancelEdit()メソッドは、InvalidOperationException例外をCatchしたブロックに記述したら、動作できます。

ソースコード例:

private void button1_Click(object sender, RoutedEventArgs e)
{
   try
   {
       this.dataForm1.CurrentItem = new CustomData() { Name="a" };
   }
   catch (InvalidOperationException)
   {
       if (MessageBoxResult.OK == MessageBox.Show("データの修正を放棄しますか?", "警告", MessageBoxButton.OKCancel))          {
           this.dataFormUserInfo.CancelEdit();
       }
   }
}

バインドするEntityDataのプロパティの属性

//DataForm内表示するラベルの文字列、順番などを定義
[Display(Name = "メール", Description = "ユーザーのメールアドレス", Order = 1)]
//必須かどうか
[Required(ErrorMessage = "入力必須項目")]
//文字の長さの制限
[StringLength(20, ErrorMessage = "最大50文字まで")]
//正規表現の制限
[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "メールフォーマットに誤りがあります")]
public string MailAddress { get; set; }

ほかにKey、Editable、Range、EnumDataType、CustomValidationなどの属性があります。

詳しく:
http://msdn.microsoft.com/en-us/magazine/ee335695.aspx

DataFromのいいデモビデオ:
http://www.silverlight.net/learn/videos/all/dataform-control/



あなたのお住まいの地域で最安のブロードバンド選び

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:47:28 (1628d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze