WPF多窗口传参解决方案

在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++中的传递方式一样,即,将传递的参数的拷贝传递过去,

我猜的。可能和底层操作不一样,但是最起码表象是相同的。)

posted @ 2015-03-20 16:27  DemoApp  阅读(5276)  评论(14编辑  收藏  举报