【WPF】別ウィンドウに値を受け渡して、データを更新できるようにしてみた

2017年8月19日C#,開発

おはようございます。

昨日に引き続き、
モーダル表示した子ウィンドウの話です。

こういった画面を作る際に必要となるのが、親画面から子画面(逆もまたしかり)へのデータ渡しですよね。

ということで、
今回はデータの修正を別ウィンドウで行うように修正するついでに、親から子へデータを渡す方法を試してみます。

プログラムは前回のものを。

https://www.doraxdora.com/blog/2017/08/18/post-2073/

スポンサーリンク

画面の変更

SubWindow.xaml
更新ボタンを追加し、デフォルトを非表示状態にする。

プログラム修正

コンストラクタに引数を追加

親画面から値を受け取るために引数を追加します。
SubWindow.xaml.cs

グローバル変数の追加

更新時に参照するためにグローバルな変数に受け取ったデータを設定します。
SubWindow.xaml.cs

初期化処理の修正

追加、更新でボタンの表示切替、及び画面へのデータ設定を行うようにします。
SubWindow.xaml.cs

更新処理の追加

更新ボタンクリックイベントを追加します。
SubWindow.xaml.cs

追加ボタン押下処理の修正

SubWindowのコンストラクタに引数を追加したが、追加処理では特に子画面に渡すものがないので null を指定。
MainWindow.xaml.cs

更新ボタン押下処理の修正

画面で選択されたデータを取得し子画面へ渡すように。
MainWindow.xaml.cs

起動してみる

検索後画面
検索後画面

対象を選択して「更新」ボタンをクリックします。

別ウィンドウ表示
別ウィンドウ表示

別ウィンドウが表示され、選択されたデータが各項目に反映されています。

内容の変更
内容の変更

データを修正し、「更新」ボタンをクリックします。

確認メッセージ表示
確認メッセージ表示

確認メッセージが表示されます。

データ再検索
データ再検索

データが再検索され、更新が反映されていることが確認できました。

まとめ

無事に親画面から子画面へとデータを渡して処理することができました。
引数をオブジェクトの配列なんかにすると複数のパラメータを渡すことも可能ですね

という感じで、今回はここまでです。

ではでは。

スポンサーリンク


関連するコンテンツ

2017年8月19日C#,開発C#,WPF,プログラミング

Posted by doradora