如何在 C# WPF 应用程序中的窗口之间传递数据?

Sho*_*291 2 c# wpf

我的 WPF 应用程序的主窗口中有一个登录表单。如果用户登录成功,我想打开HomeWindow。我的问题是我需要将 adminID 变量从 MainWindow 传递到 HomeWindow。我怎样才能做到这一点?

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

            private void btnLogin_Click(object sender, RoutedEventArgs e)
            {
                int errors = 0;
                if (txtUsername.Text == "")
                {
                    lblUsernameStatus.Content = "This field is required.";
                    errors = errors + 1;
                }

                if (txtPassword.Text == "")
                {
                    lblPasswordStatus.Content = "This field is required.";
                    errors = errors + 1;
                }

                if (errors == 0)
                {
                    Administrator TryLogin = new Administrator();
                    if (TryLogin.VerifyUser(txtUsername.Text, txtPassword.Text))
                    {
                        HomeWindow home = new HomeWindow();
                        int adminID = TryLogin.userID;
                        home.Show();
                        this.Close();
                    }
                    else
                    {
                        lblLoginStatus.Content = TryLogin.status;
                    }

                }
            }
Run Code Online (Sandbox Code Playgroud)

PS:我没有在 HomeWindow.xaml.cs 文件中编写任何内容。

Pse*_*che 5

定义一个初始化程序来HomeWindow接受您想要发送的数据:

private int AdminID;

public HomeWindow()
{
    InitializeComponent();
}

public HomeWindow(int adminID) : base()
{
    AdminID = adminID;
}
Run Code Online (Sandbox Code Playgroud)

然后你就可以:

HomeWindow home = new HomeWindow(TryLogin.userID);
home.Show();
this.Close();
Run Code Online (Sandbox Code Playgroud)