首页 文章

Windows Phone 7 Silverlight应用程序MVVM登录

提问于
浏览
0

我正在创建一个登录视图,它会询问用户的用户名和密码,然后用户可以单击“登录”按钮尝试登录 . 当用户单击该按钮的单击处理程序中的按钮时,我使用在该方法中验证的用户名和密码调用LoginViewModel类上的Login()方法,然后该方法向我的Web服务发出异步REST请求 . 用户名和密码 . 一旦在Web服务上验证了用户名和密码,并且服务返回true表示这些凭据有效,我如何通知登录视图,以便登录视图可以停止显示进度对话框并显示不同的页面或显示错误?

2 回答

  • 1

    您不需要mvvm框架来实现mvvm,但它可以加快速度 . 在mvvm light中,你可以拥有一个带有导航框架的RootView,并使用messenger告诉RootView根据身份验证交换或退出LoginView或MainView .

    对于wp7应用程序,我更喜欢Caliburn Micro,因为它为您做了很多工作,就像在强制View第一种方法中轻松浏览页面一样,然后在子页面上轻松使用ViewModel第一种方法 . CM还内置了一些很好的东西来帮助你处理墓碑 .

    在CM中,您的ShellView可以有一个ContentControl,您可以激活LoginViewModel或MainViewModel基于身份验证传递与否 .

  • 0

    您应该在viewmodel中有一个boolean属性,说明viewmodel是否繁忙 . 然后,您将该属性绑定到弹出窗口的IsOpen属性 . 对于导航部分,有几个选项 . 其中之一是拥有一个知道如何从一个页面到另一个页面的控制器,并且它由viewmodel使用 .

    另外,为什么要将参数传递给登录方法?为什么你首先使用事件?您应该考虑在vm中创建命令并将其直接绑定到按钮 .

    您需要一个MVVM框架才能在Windows Phone上遵循此模式 . 我会推荐PrismMVVMLight .

相关问题