在WPF中,我們的常常涉及到多個窗口之間傳遞參數的問題,那么該怎么傳呢?
答:在窗口的構造函數中添加想要傳遞的參數。(我表達不好,請看下面代碼。)
在主窗口中單機button打開一個新的子窗口。
//主窗口類部分如下: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { NewWindow newWindow = new NewWindow(string str); newWindow.ShowDialog(); } }
子窗口類中如下:
public partial class NewWindow : Window { public string str{ get; set; } public NewWindow(string strRef) { str = strRef; InitializeComponent(); } //可以對str變量引用了。 }
注意:我們這傳遞的參數如果是值類型(int,char,double)等,那么數據的傳遞就是單向的,即只能從父窗口到子窗口。
所以,如果想要實現父窗口於子窗口之間可以互相傳遞參數,那么我們必須要通過傳遞引用類型的變量來實現(string類型除外)。
至於為什么,應該就是參數傳遞在底層的操作造成的。(可能和c,c++中的傳遞方式一樣,即,將傳遞的參數的拷貝傳遞過去,
我猜的。可能和底層操作不一樣,但是最起碼表象是相同的。)