Prism For WPF Login对话框又简单又合理的方案之一
一、前言
这是一篇极简的小短文。首先感谢站长和各位WPF大佬对我的指导,我学到了很多,还是关于利用Prism做Login对话框的事情,看到站长发过一篇《WPF Prism框架Region失效了?》,目前我有一个自认为更合适的解决方法,给大家汇报一下:
二、主体内容
精髓就一句话,在主App这个类里重载protected override void OnInitialized()
这个方法,然后login.ShowDialog()
的逻辑写在里面就ok了,具体看以下代码:
namespace Wpf1
{/// <summary>/// Interaction logic for App.xaml/// </summary>public partial class App{protected override Window CreateShell(){return Container.Resolve<MainWindow>();}protected override void RegisterTypes (IContainerRegistry containerRegistry){}protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog){}protected override void OnInitialized(){ var login = Container.Resolve<Login>();var loginResult = login.ShowDialog();if (loginResult.Value)base.OnInitialized();elseApplication.Current.Shutdown();}}
}
然后再Login.xaml.cs
里的“登录”和“退出”按钮的Click事件里这么写
private void Btn1_Click(object sender, RoutedEventArgs e)
{//登录DialogResult = true;
}
private void Btn2_Click(object sender, RoutedEventArgs e)
{//退出DialogResult = false;
}
这样就可以了,灰常的简单,还是关键的一点是在APP里重写 protected override void OnInitialized()
这个方法,这样就不会在Login加载的时候同时也加载MainWindowViewModel
了。不过这也有一点要注意:此时Prism的Region好像还没有生效,利用Prism的视图注入或者视图发现这两个办法给Login添加视图应该不行,还好一般的Login也不是特别复杂,在Login.xaml正常写写就行。
作者:王景浩
微信ID:daidai_cn
Prism For WPF Login对话框又简单又合理的方案之一相关推荐
- Prism for WPF初探(构建简单的模块化开发框架)
先简单的介绍一下Prism框架,引用微软官方的解释: Prism provides guidance to help you more easily design and build, flexibl ...
- 安装window service 中出现Set Service Login对话框
当弹出窗口(注:Set Service Login对话框)时,输入用来运行该服务的帐户的用户名和密码.用户名必须以domain\username的形式.(注:如果不是domain内帐 户,可以使用Yo ...
- 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...
- WPF Expander控件简单样式
WPF Expander控件简单样式 样式代码: <Style x:Key="ExpanderStyle1" TargetType="{x:Type Expande ...
- 简单的群体测试方案C++代码(Group testing against Covid-19)
原理参考链接 https://www.econstor.eu/handle/10419/221811 http://www.magigen.com/h-nd-348.html 文章原理回顾 文章比较了 ...
- 文件夹选择对话框 JS实现的两种方案
文件夹选择对话框 JS实现的两种方案 /** * browseFolder.js * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框 * 以供用户实现对系统文件夹选择 ...
- 朵拉云提供最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center
最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center 一机多用的同时,想要服务器尽可能的稳定.至于软硬件的选择就是另一个故事了,这里我们来谈谈虚拟化. 为 ...
- Android之简单改变按钮颜色方案
前一段时间跟着大哥做项目,大哥让我给按钮背景添加颜色,然后点击变色,于是我就想到了button三态的变换方法,然而没有实现,反而出现了问题,今天就和大家说说,如何解决color设为背景颜色动态变色. ...
- android 方法调用,Android 简单的方法调用方案
Method Bridge 一个简单的方法调用方案 特性 方法动态注册 跨对象.跨页面.跨线程等方法调用 添加依赖 配置仓库 allprojects { repositories { ... mave ...
最新文章
- 写给新手:2021版调参上分手册!
- DB time抖动的原因分析
- hbase shell-dml(数据管理指令)
- java中用字节流读取文本时中文乱码
- 【NOI2019】回家路线【无后效性dp状态设计】【斜率优化】
- 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
- Java 蓝桥杯 时间转换
- 自定义日期输入控件-解决需要用户输入日期的麻烦控制
- Visual Assist安装完之后的文件复制路径
- SQL Server中的零碎数据库还原
- swift VFL - 父视图是scrollview 注意点
- 接口 与 抽象类 区别
- C++ 高性能服务器网络框架设计细节
- java坦克大战图片素材包_坦克大战图片素材
- SugarNMS 工业交换机网管软件
- 支付宝对账单功能开发
- matlab中tgn,TGN/EE介导的囊泡运输与GDI1协同调控根毛中ROP2 GTPase的动态定位的机理研究...
- 面向交通预测的动态图卷积循环神经网络:基准和方法(重磅推荐)
- (按位取反)运算的理解
- Python+大数据-数据处理与分析-pandas快速入门
热门文章
- iOS UI基础-7.0 UIScrollView
- 搞IT的技术人员为什么会如此苦逼
- TFS 2012研发管理能力(9)
- The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
- 在MinGW下使用DShow的方法
- PHP yii 框架源码阅读(一)
- luogu P3380 【模板】二逼平衡树(树套树)
- android获取手机机型、厂商、deviceID基本信息
- POJ2676,HDU4069解决数独的两种实现:DFS、DLX
- 隐藏UITableView当没有数据或数据不够的时候出现的分割线.