2011-08-30 75 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。

相關問題