2

Silverlightに子ウィンドウがあり、アプリケーションMainPage.xamlのテキストボックスに入力する文字列値を送信したいと思います。

どうすれば値を戻すことができますか?

私はこれを試しました-

MainPage m = (MainPage)Application.Current.RootVisual;
m.textBox1.Text = value;
4

2 に答える 2

2

これは逆に行う必要があります。子ウィンドウを開く親は、子のイベントにイベントハンドラーをアタッチする必要があります。次に例を示します。

 childwindow.ButtonClicked += new EventHandler(childWindow_ButtonClicked);

このハンドラー内で、親は子ウィンドウのプロパティからの値で独自のコントロールを更新できます。

private void childWindow_ButtonClicked(object sender, EventArgs e)
      {
            txtValue.Text = childwindow.Value;
      }
于 2012-11-02T12:23:28.850 に答える
0

mvvmパターンを使用していると仮定すると、子ウィンドウのShowDialogメソッドを使用して開くことができます。ShowDialogメソッドは、ウィンドウが閉じられるまで待機します。

ウィンドウを閉じた後、ウィンドウビューモデルから依存プロパティを読み取り、メインページでそれらの値を設定できます。

var view = new ChildWindowView();
var model = new ChildWindowViewModel();
view.DataContext = model;

var result = view.ShowDialog();
于 2012-11-02T12:16:08.793 に答える