Silverlightに子ウィンドウがあり、アプリケーションMainPage.xamlのテキストボックスに入力する文字列値を送信したいと思います。
どうすれば値を戻すことができますか?
私はこれを試しました-
MainPage m = (MainPage)Application.Current.RootVisual;
m.textBox1.Text = value;
Silverlightに子ウィンドウがあり、アプリケーションMainPage.xamlのテキストボックスに入力する文字列値を送信したいと思います。
どうすれば値を戻すことができますか?
私はこれを試しました-
MainPage m = (MainPage)Application.Current.RootVisual;
m.textBox1.Text = value;
これは逆に行う必要があります。子ウィンドウを開く親は、子のイベントにイベントハンドラーをアタッチする必要があります。次に例を示します。
childwindow.ButtonClicked += new EventHandler(childWindow_ButtonClicked);
このハンドラー内で、親は子ウィンドウのプロパティからの値で独自のコントロールを更新できます。
private void childWindow_ButtonClicked(object sender, EventArgs e)
{
txtValue.Text = childwindow.Value;
}
mvvmパターンを使用していると仮定すると、子ウィンドウのShowDialogメソッドを使用して開くことができます。ShowDialogメソッドは、ウィンドウが閉じられるまで待機します。
ウィンドウを閉じた後、ウィンドウビューモデルから依存プロパティを読み取り、メインページでそれらの値を設定できます。
var view = new ChildWindowView();
var model = new ChildWindowViewModel();
view.DataContext = model;
var result = view.ShowDialog();