加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Caliburn.Micro中处理登录/注销?

发布时间:2020-12-15 18:19:59 所属栏目:百科 来源:网络整理
导读:我是Caliburn.Micro的新手,我想知道在我的应用程序中处理用户登录/注销周期的最佳方法是什么.我在网上看到了一些使用空 Shell-View实现这一点的建议,它在LoginView和主应用程序视图之间切换,每个都有一个自定义ViewModel. 我真的不喜欢这个解决方案,因为对我
我是Caliburn.Micro的新手,我想知道在我的应用程序中处理用户登录/注销周期的最佳方法是什么.我在网上看到了一些使用空 Shell-View实现这一点的建议,它在LoginView和主应用程序视图之间切换,每个都有一个自定义ViewModel.

我真的不喜欢这个解决方案,因为对我来说这些是两个独立的窗口,具有非常不同的属性(标题,图标,大小),它似乎是一个不干净的解决方案,两个窗口看起来像另一个窗口.另一个问题是,登录窗口来自一个我无法控制但不使用Caliburn.Micro的实用程序库,它是一个普通的旧窗口,当用户单击“登录”时它会给我一个事件.

我还看到了在Bootstrapper启动方法中显示此Dialog的建议,但我看到的问题是用户可以选择“Logout”应用程序,它应该再次显示Login对话框.我在处理Bootstrapper中的Views之间切换似乎是错的.

我想要的是使用某种类似于Caliburn Conductor的ApplicationViewModel或ApplicationController,但它不是在Window内的Views之间切换,而是应该在LoginWindow和MainWindow之间切换,并且还应该处理整个应用程序的Closing(还需要退出).在激活时,它将显示LoginWindow,处理Login事件,然后切换到主窗口(Shell).如果用户选择“LogOut”,则该事件应再次冒泡到ApplicationViewModel / Controller,这将停用/关闭MainWindow,执行Logout,然后再次显示LoginDialog.类似的Close事件会执行Logout,但随后关闭整个应用程序.

所以我的问题是:

>您如何看待这个解决方案,还有另一个/更好的解决方案吗?
>我该如何实现?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读