DataGridコントロールの追加と、データの編集、更新
DataGrid内のデータの更新とキャンセル
今回のWCF RIA Servicesで作成したサンプルは、デフォルトでDataGrid内のデータの修正が可能になっています。しかし、DataPagerコントロールでページングを行っている場合、図11のように、データを修正するとページ番号がグレーアウトして、ページングが使用不可となってしまいます。
図11:DataGridコントロール内のデータを編集するとページ番号がグレーアウトする |
この不具合を解消し、ページングを可能にするには、データの修正をキャンセルするか、データベースに対して修正した内容で更新する必要があります。そこで、[更新]と[キャンセル]の2つのボタンを追加します(図12)。
図12:[更新]と[キャンセル]ボタンを追加した |
次に、[更新]ボタンの[共通]プロパティ内にあるCommandプロパティの図13のアイコンをクリックして、「データバインドの適用」を選択します。
図13:Commandプロパティの横にあるアイコンをクリックし、「データバインドの適用」を選択する(クリックで拡大) |
表示されるダイアログボックス上で「ソース」として「ElementName」→「UdonDomainDataSource」と選択します。次に「パス」として「SubmitChangesCommand」を指定します(図14)。
図14:[更新]ボタンのCommandプロパティから、「ソース」として「ElementName」「UdonDomainDataSource」を選択し、「パス」として「SubmitChangesCommand」を選択する(クリックで拡大) |
次に、[キャンセル]ボタンを選択して、同様にCommandプロパティから「データバインドの適用」を選択します。「ソース」として「ElementName」→「UdonDomainDataSource」と選択します。次に「パス」として「RejectChangesCommand」を指定します(図15)。
図15:[キャンセル]ボタンのCommandプロパティから、「ソース」として「ElementName」「UdonDomainDataSource」を選択し、「パス」として「RejectChangesCommand」を選択する(クリックで拡大) |
SubmitChangesメソッドは、変更をすべてDomainContext のエンティティに送信します。RejectChangesメソッドは、変更を拒否することによって、オブジェクトの状態を、変更されていない状態にリセットします
ここで実行してみましょう。開始時点では、[更新]、[キャンセル]ボタンともに使用不可となっています(図16)。
図16:開始時点では[更新]、[キャンセル]ボタンともに使用不可となっている |
データを修正すると、[更新]、[キャンセル]ボタンの使用が可能になります。任意のデータを修正して、[更新]ボタンをクリックすると、udonデータベースに変更が反映されます(図17)。
図17:データを修正し、[更新]ボタンをクリックすると、udonデータベースにも修正が反映されている |