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一样的通讯,请高手指点。
展开
 我来答
蒋乐兴
推荐于2016-03-12 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:33.8万
展开全部
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.第一个窗口去调用这个方法就可以了。
追答
可以直接Show好吧、到是WinForm对它的支持不人性化!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式