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