首页 > 解决方案 > C#在窗口之间传递数据(WPF)

问题描述

最近在大学学习C#,想弄清楚如何将MainWindow.xaml中的变量“name”传递给ThirdWindow.xaml?

以下代码用于将数据分配给变量“name”的主窗口

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();    
    }

    public void NameBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        string name = NameBox.Text;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        SecondWindow newWin = new SecondWindow();
        newWin.Show();
        this.Close();
    }
}

下面的代码是第三个窗口

public partial class ThirdWindow : Window
{
    public ThirdWindow()
    {
        InitializeComponent();      
    }

    public void LstThanks_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        LstThanks.Items.Add(name);
    }
}

标签: c#wpf

解决方案


您可以通过新窗口的构造函数传递变量

var win = new ThirdWindow(name);

public ThirdWindow(string name)
{
    InitializeComponent();      
}

另一种方法是通过事件消息传递它。这将要求您编写一条新消息并将一个事件侦听器添加到您在 ThirdWindow 类中的构造函数中。如果你在谷歌上搜索,这里有很多关于如何做这样的事情的例子。


推荐阅读