zoukankan      html  css  js  c++  java
  • Prism框架下的登录窗口跳转

    Prism框架下的登录窗口跳转思路是,先注册MainWindow,然后将LoginWindow作为主窗口运行,登录完成后在LoginWindow中使用容器切换窗口为MainWindow并显示,最后关闭LoginWindow即可。

    需要注意的是,如果想要在MainWindow中通过区域名称(RegionManager.RegionName)来进行控件注入,那么需要在切换窗口时设置MainWindow的RegionManager,而RegionManager可以通过LoginWindow注入获取(IRegionManager)。

    1、App.xaml.cs

    public partial class App : PrismApplication
    {
        protected override Window CreateShell()
        {
            return Container.Resolve<LoginWindow>();
        }
    
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.Register(typeof(object), typeof(MainWindow));
        }
    }

    2、LoginWindow.xaml.cs

    public partial class LoginWindow : Window
    {
        private readonly IContainerExtension _container;
        private readonly IRegionManager _regionManager;
    
        public LoginWindow(IContainerExtension container, IRegionManager regionManager)
        {
            InitializeComponent();
    
            _container = container;
            _regionManager = regionManager;
    
            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                var viewModel = new LoginWindowViewModel();
                viewModel.LoginSuccess += OnLoginSuccess;
                DataContext = viewModel;
            }
        }
    
        private void OnLoginSuccess()
        {
            var mainWindow = _container.Resolve<MainWindow>();
            RegionManager.SetRegionManager(mainWindow, _regionManager);
            mainWindow.Show();
            Close();
        }
    }
  • 相关阅读:
    hadoop的文件系统FileSystem
    关于hadoop的日志
    top命令的使用
    对于多个集合求两两交集(共同关注的用户、共同转载的微薄等)
    hadoop配置含义(继续更新中)
    thrift
    【VS2015】Win7 X64上面安装VS2015
    【经验记录】开发中的实际问题记录
    【VS2012】F5不能自动编译新修改
    斯巴达三百程序员
  • 原文地址:https://www.cnblogs.com/xhubobo/p/14920684.html
Copyright © 2011-2022 走看看