0

新しいフォームを起動する wpf フォームを作成しました。新しいフォームはさらにデータを取得します。ここで、データをメインフォームに反映させたい、つまり、ポップアップフォームに「SAVE」ボタンを実装します。保存するデータは ObservableCollection List の形式です。どうやってこれを行うのかわかりません。

ステップの内訳

ステップ 1 : メイン フォームの起動

ステップ 2 : メインをクリックしてフォーム 2 を起動します。

ステップ 3: データベースからデータを取得し、フォーム 2 に入力します。ユーザーはここでいくつかの値を選択します。

ステップ 4 : フォーム 2 の [保存] ボタンをクリックして、値がメイン フォームに反映されるようにします。

手順 1 ~ 3 が完了しました。ステップ 4 を行う方法がよくわかりません。リストはフォーム 2 で定義されているため、ここではデータバインディングを行うことができません (または抜け道はありますか?) データベースにデータを保存してからクエリを実行する必要がありますか?

4

2 に答える 2

1

コメントに投稿されたスティーブの提案を利用して、問題を解決できました。それを行う方法は、「メインフォームの参照をコンストラクターの2番目のフォームに渡す」ことです

例 :

メインフォーム :

public void updateText(String data)
{
    txb.Text = data;
}

フォーム 2 :

// Here the constructor takes a reference of the Mainform . 
MainWindow mainform = null;

public Form2(MainWindow w)
{
    mainform = w;
    ......
}
// Perform relevant operations on Form2 finally call 
 mainform.updateText(data);

それでおしまい 。変更は、MainWindow で定義されたテキスト ボックスに反映されます。

于 2013-05-20T08:46:21.557 に答える