2012-11-02 98 views
2

我在Silverlight中有一個子窗口,我希望發送一個字符串值來填充應用程序MainPage.xaml中的文本框。將值從子窗口傳遞迴MainPage

我該如何傳回數值?

我曾經嘗試這樣做 -

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

回答

2

你應該以相反的方式做到這一點。打開的子窗口家長應重視的事件處理程序,以孩子的事件,例如:

childwindow.ButtonClicked += new EventHandler(childWindow_ButtonClicked); 

在此處理程序,家長可以從孩子的窗口屬性的值更新了自己的控制。

private void childWindow_ButtonClicked(object sender, EventArgs e) 
     { 
      txtValue.Text = childwindow.Value; 
     } 
+0

繁榮。非常感謝的點。 – Ebikeneser

0

假設你正在使用的MVVM模式,你可以使用子窗口的ShowDialog方法來打開它。 ShowDialog方法等待直到窗口關閉。

窗口關閉後,您可以從窗口viewmodel中讀取依賴屬性並在主頁面中設置它們的值。

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

var result = view.ShowDialog(); 
相關問題