2011-08-30 74 views
0

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

回答

0

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

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

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

1

您不需要mvvm框架来实现mvvm,但它可以加快速度。在mvvm中,您可以拥有一个具有导航框架的RootView,并使用该信使通知RootView根据身份验证交换进出LoginView或MainView。

对于WP7的应用程序,我更喜欢Caliburn Micro,因为它做了很多工作,你喜欢做很容易地浏览在强制查看第一种方法的网页,但随后使得使用在子页面视图模型第一种方法容易为好。 CM还有一些内置的好东西来帮助你处理墓碑。

在CM中,您的ShellView可以拥有一个ContentControl,并且您可以根据身份验证传递或无法激活LoginViewModel或MainViewModel。

相关问题