繁体   English   中英

如何在 WPF 中将数据从 Window 传递到 MainWindow?

[英]How to pass data from Window to MainWindow in WPF?

我是编程新手,现在我的新登录窗口有问题。 我创建了一个新窗口来登录我的服务器数据库,但在我的主窗口中如何调用它? 不知道怎么画比较好。

在我的登录窗口中:

using MyS_Database;
MyServer_Database server;

public void LoginButton_Click(object sender, RoutedEventArgs e)
{
    server = new MyServer_Database("ClientName","ServerIP","","",UserID.Text,UserPassword.Password.ToString(),"01",MyServer_Database.LoginType.User,out serverresult)
    swith(serverresult)
    {
    case 0:
    Mainwindow.Show();
    this.Close();
    break;

    default:
    Environment.Exit(0);
    }
}

但是当我在与服务器通信的 MainWindow 上调用一个方法时,我必须像这样调用它:

server.GetDataFromUserList();

但它不能识别服务器,我尝试了类似Win1.server或类似的东西,但我失败了。 我怎么能通过呢? 先感谢您!

快速回答是像这样公开服务器:

public MyServer_Database Server { get; set; }

然后你可以在MainWindow调用它:

Win1.Server.GetDataFromUserList();

但这不是一个好方法。 更好的方法是通过 MVVM 在不同的类中抽象出这些类型的操作。 阅读有关 MVVM 的更多信息,您会发现很棒的方法。

编辑

您还应该做以下两件事之一:

  1. 不要关闭Win1 ,而不是做this.Hide();

  2. 通过将MyServer_Database的实例传递给Win1的构造函数,将其保留在MainWindow中。

你应该把它放在MainWindow

public MyServer_Database Server { get; set; }

并在需要时调用:

var Win1 = new LoginWindow(Server);

然后您可以访问MainWindow Server对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM