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