我在我的WinRT項目中有一個靜態的UserAccount
類。該類包含有關當前登錄用戶的各種靜態屬性(如用戶名,電子郵件地址,...)。我需要這個信息可以從任何視圖使用綁定(例如 - 我想顯示個性化的消息"Welcome, {0}"
- 傳遞用戶名 - 在應用程序的一頁),但我需要確保,這些條件得到滿足:靜態屬性/ ViewModel(C#,WinRT)
- 以正確MVVM圖案方式實現它
- 當用戶切換到當應用程序正在運行通設置魅力另一個帳戶,結合的字段(如消息等等)應該自動與新更新數據。
我認爲這將有可能像全球UserAccountViewModel
創造的東西,這將是具有所需性能的經典視圖模型,並會從靜態UserAccount
類進行手動更新,但不似乎是最好的解決方案。
你能否想到一個更好的方法來實現這一目標並滿足上述兩個條件?
任何幫助極大的讚賞。
編輯: 類似的情況又一個類別中發生,我需要 - NetworkStatus - 其中有IsInternetAvailable知道應用是否被連接,但我需要使用這個布爾綁定到不同的按鈕的IsEnabled屬性中的應用。
是否可用於Windows RT XAML {x:Static namespace:Class.Property}?如果沒有一種方法可以使用依賴注入容器並將您的用戶帳戶信息註冊爲單個實例類型。因此,您的ViewModel可以將UserAccount注入到構造函數中。你在使用DI嗎? – Alan 2013-04-29 14:38:34
我認爲x:Static不可用。我想到了DI方法,但是這使得從代碼隱藏(例如 - 其中一個屬性是AccessToken,我用它從Web服務加載數據)導致了對UserAccount類屬性的一些不友好的訪問 - 現在我將不得不做一些像ViewModelLocator.UserAccount.AccessToken(本質上更麻煩的代碼))還是有另一種方法來實現這一點? – 2013-04-29 17:52:17
爲什麼你需要從後面的代碼訪問視圖模型屬性?這是屬於視圖模型的內容。 – 2013-04-30 04:19:55