[英]WPF: How to pass data to PAGE from MainWindow in codebehind?
[英]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 的更多信息,您会发现很棒的方法。
编辑
您还应该做以下两件事之一:
不要关闭Win1
,而不是做this.Hide();
通过将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.