在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++中的传递方式一样,即,将传递的参数的拷贝传递过去,
我猜的。可能和底层操作不一样,但是最起码表象是相同的。)