Raf*_*jer 3 wpf mvvm caliburn.micro
我刚开始使用Caliburn Micro框架实现我的WPF应用程序(这是我第一次使用它).
我已经配置了AppBootstrapper类,一切正常(我的主窗口显示),但现在我想实现我的应用程序的更复杂的行为.一开始我想只显示一个启动画面(它会从服务中加载一些数据).在它之后,我想只显示一个LogIn窗口,如果用户登录系统,我的主窗口应该显示.
用另一个词说话我想实现那种窗口流程:
启动画面 - >登录窗口 - >主窗口
我试图实现类似的东西ShellController会从派生Conductor<IScreen>.Collection.OneActive或者Conductor<IScreen>,但我不知道该怎么做没有信息查看壳牌(它应该是唯一为整个应用程序控制器).
我的另一个想法是覆盖DisplayRootViewAppBootstrapper中的方法,并IWindowManager用于显示窗口.这是好方法吗?
如果有任何帮助或建议,我将非常感激.
是覆盖DisplayRootView并使用IWindowManager显示不同的屏幕/视图模型.
像这样的东西:
var windowManager = IoC.Get<IWindowManager>();
windowManger.ShowDialog(IoC.Get<SplashScreenViewModel>());
if(windowManger.ShowDialog(IoC.Get<LoginViewModel>()))
{
windowManger.ShowWindow(IoC.Get<ShellViewModel>());
}
Run Code Online (Sandbox Code Playgroud)
小智 7
在Caliburn Micro v1.1中,该DisplayRootViewFor()方法已更改为静态.现在推荐的方法是覆盖OnStartup()Bootstrapper中的方法,以显示所需的启动或登录屏幕.
小智 6
要在调用TryClose()LoginViewModel 之后避免应用程序退出,请尝试以下操作:在App.xaml中,在DisplayRootView的末尾设置ShutdownMode="OnExplicitShutdown"
并调用Application.Shutdown();.
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |