show() 命令不会打开 window Wpf

The show() command doesn't open the window Wpf

我有一个在我的应用程序启动时运行的以下方法,我首先显示维护屏幕。该方法运行后,我想显示我的登录屏幕。但是,登录屏幕打不开。如果我注释掉显示维护屏幕的代码,它就可以正常工作。

    private void Application_Startup(object sender, StartupEventArgs e)
    { 

        ILocalDbDataService _locDataService =new LocalDbDataService();

            Maintenance mWin = new Maintenance();
            mWin.Show();

            MaintenanceViewModel maintenanceViewModel = Microsoft.Practices.ServiceLocation.ServiceLocator.Current.GetInstance<MaintenanceViewModel>();
            maintenanceViewModel.RunMaintenance();
            Login lWin = new Login();                
            lWin.Show();//This windows doesn't open
}

public class MaintenanceViewModel : ViewModelBase
{

    private readonly ILocalDbDataService _localDbDataService;

    public MaintenanceViewModel(ILocalDbDataService localDbDataService)
    {
        _localDbDataService = localDbDataService;

    }

    public  void RunMaintenance()
    {
       bool result= _localDbDataService.RunTransArchiveMaintenance();
       MessengerInstance.Send(new NotificationMessage("CloseMaintenance"));
    }
}
public partial class Maintenance : Window
{
    public Maintenance()
    {
        InitializeComponent();

        Messenger.Default.Register<NotificationMessage>(this, msg =>
        {
            if (msg.Notification == "CloseMaintenance")
            {
                this.Close();
            }
        });
    }
}

在 Maintenance window 的构造函数中,创建 Login window class 的新实例并调用 Show()。

public Maintenance (){
Login login=new Login ();
login.Show();
}

只需将其放在您的 Main window 中即可。

<ContentControl x:Name="SomeName"
                Grid.Row="1"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                Content="{Binding CurrentScreen}" />

设置 CurrentScreen 用户控件属性当你想改变

CurrentScreen = new MaintenancePage();
CurrentScreen = new LogInPage(); // LoginPage.xaml is your login view.