我是新手编程,现在我的新登录窗口有问题。 我创建了一个用于登录我的服务器数据库的新窗口,但在我的主窗口中如何调用它?我不知道如何更好地绘制它。
在我的登录窗口中:
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 或类似的东西,但我失败了。 我怎么能通过它?提前谢谢!
答案 0 :(得分:1)
快速回答是让服务器像这样公开:
public MyServer_Database Server { get; set; }
然后您可以在MainWindow
中使用:
Win1.Server.GetDataFromUserList();
但这不是一个好方法。更好的方法是通过MVVM抽象出不同类中的这类操作。阅读有关MVVM的更多信息,您将找到很好的方法。
修改强>
你还应该做以下两件事之一:
请勿关闭Win1
代替this.Hide();
将MyServer_Database
中的MainWindow
实例传递给Win1
的构造函数。
你应该把它放在MainWindow
public MyServer_Database Server { get; set; }
并在需要时拨打:
var Win1 = new LoginWindow(Server);
然后您可以访问Server
MainWindow
对象