DataGridコントロールの追加と、データの編集、更新

2010年11月18日(木)
PROJECT KySS

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データベースにも修正が反映されている

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています