WPF中如何实现多窗口通讯、传值?
在.NET的Winform里,多个窗体之间可以方便地通讯和传值,如form1和form2两个窗体中都有一个按钮button1和一个文本框textbox1控件,要在form...
在.NET的Winform里,多个窗体之间可以方便地通讯和传值,如form1和form2两个窗体中都有一个按钮button1和一个文本框textbox1控件,要在form1中点击按钮而展示Form2并且给form2的textbox1传值,只需在form1的Click事件中输入 两条语句即可:
form2.textbox1.text="从form1传来的值"
form2.show
同样,也可以在form2中给form1传值,多窗体通讯很方便。
现在学习WPF,发现没法实现两个窗体间的通讯,如在WPF中有window1 和window2两个窗口,不知道如何实现如同两个Winform一样的通讯,请高手指点。 展开
form2.textbox1.text="从form1传来的值"
form2.show
同样,也可以在form2中给form1传值,多窗体通讯很方便。
现在学习WPF,发现没法实现两个窗体间的通讯,如在WPF中有window1 和window2两个窗口,不知道如何实现如同两个Winform一样的通讯,请高手指点。 展开
1个回答
展开全部
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//第二个窗口的引用
Window2 w2 = null;
private void button1_Click(object sender, RoutedEventArgs e)
{
//是第一次就打开新的窗口
if (w2 == null)
{
w2 = new Window2(textBox1.Text);
w2.Show();
}
else
{
//不是第一次,就直接更新 窗口2的textbox
w2.UpData(this.textBox1.Text);
}
}
}
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
}
public Window2(string text)
{
InitializeComponent();
//设置text 的值
this.textBox1_inWindow_2.Text = text;
}
public void UpData(string str)
{
//设置text 的值
this.textBox1_inWindow_2.Text = str;
}
}
总结:
就是要第二个窗口提供一个方法,这个方法用来更新它的UI.第一个窗口去调用这个方法就可以了。
{
public MainWindow()
{
InitializeComponent();
}
//第二个窗口的引用
Window2 w2 = null;
private void button1_Click(object sender, RoutedEventArgs e)
{
//是第一次就打开新的窗口
if (w2 == null)
{
w2 = new Window2(textBox1.Text);
w2.Show();
}
else
{
//不是第一次,就直接更新 窗口2的textbox
w2.UpData(this.textBox1.Text);
}
}
}
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
}
public Window2(string text)
{
InitializeComponent();
//设置text 的值
this.textBox1_inWindow_2.Text = text;
}
public void UpData(string str)
{
//设置text 的值
this.textBox1_inWindow_2.Text = str;
}
}
总结:
就是要第二个窗口提供一个方法,这个方法用来更新它的UI.第一个窗口去调用这个方法就可以了。
追答
可以直接Show好吧、到是WinForm对它的支持不人性化!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询