【发布时间】:2023-03-05 07:45:01
【问题描述】:
我有两个“MainWINdows”。登录屏幕和实际的内容主窗口。这就是我想要发生的过程。
用户启动应用程序
点击登录窗口上的登录按钮
初始化内容窗口
等到我所有的列表和数据都被收集、解析并添加到 ListViews 中
关闭登录窗口并显示主窗口。 (将 MainWindow 设为主窗口)
我在隐藏主窗口时遇到问题,但我仍然需要能够对其进行初始化,以便收集所有数据。
我将此添加到我的 App.xaml:
<Application.MainWindow>
<NavigationWindow Source="MainWindow.xaml" Visibility="Hidden"></NavigationWindow>
</Application.MainWindow>
这是我的一些登录窗口代码:
// Login complete, load the MainWindow Data
MainWindow mainWindow = new MainWindow();
mainWindow.setLoginWindow = this;
mainWindow.InitializeComponent(); //mainWindow.Show();
我在 MainWindow 中使用的代码:
公共部分类 MainWindow : MetroWindow {
Window LoginWindow;
public Window setLoginWindow { get { return LoginWindow; } set { LoginWindow = value; } }
public MainWindow()
{
InitializeComponent();
// Hide the window to load Data, then on completion, close LoginWindow and show MainWindow: ::: LoginWindow.Close();
LoadData();
}
public void LoadData()
{
// Add player's to list ....
// Done loading data, show the window
LoginWindow.Close();
this.Visibility = Visibility.Visible;
}
}
问题
我将如何正确地做到这一点?另外,我希望将焦点保持在 LoginWindow 上,直到 MainWINdow 显示出来。
【问题讨论】:
-
你为什么不去启动画面 ??
-
@KrishnrajRana 这不是启动画面。这是一个登录屏幕。一个全新的窗口。
-
您在关闭窗口时遇到了哪些“问题”?只是一个设计建议。如果您必须“初始化”隐藏窗口以收集数据,则您的设计可能存在问题。考虑对 MVVM 进行一些研究,并将数据模型与视图逻辑分开。
-
@NathanA 我该怎么做呢?
-
@EliteGamer 描述 MVVM 的概念超出了这里的范围。只需 google 一下它,因为它与 WPF 相关,并在学习这个概念时获得一些乐趣。随着时间的推移,它可能会非常有益。