我一直在尋找跨平臺移動開發的MvvmCross。如何將ViewModel綁定到MvvmCross的Windows 8設置窗格?
由於視圖導航是通過調用ShowViewModel <>()完成的,您將如何在Windows 8中使用MvvmCross創建設置窗格(這是一個用戶控件)?
我一直在尋找跨平臺移動開發的MvvmCross。如何將ViewModel綁定到MvvmCross的Windows 8設置窗格?
由於視圖導航是通過調用ShowViewModel <>()完成的,您將如何在Windows 8中使用MvvmCross創建設置窗格(這是一個用戶控件)?
MvvmCross提供了一個通用的ShowViewModel<T>
導航機制,它使用Presenter在View
上顯示和設置DataContext。這顯示這樣的觀點通常覆蓋「全屏幕」,並受益於使用CIRS自動構造的ViewModels(見http://slodge.blogspot.co.uk/2013/03/v3-new-viewmodel-lifecycle.html)
然而,僅僅因爲導航使用ShowViewModel<T>
通常這樣做並不妨礙你在其他使用的ViewModels方法。 ShowViewModel<T>
機制的常見例外情況是iOS標籤和SplitView子項,WindowsPhone數據透視/ Panorama項目,Android子片段和對話框以及Windows8子窗格(如彈出窗口)。
在Windows8的實踐層面,每一個XAML用戶控件都有,你可以在代碼中設置一個DataContext屬性 - 讓你隨時可以:
new
,Mvx.IoCConstruct<TViewModel>()
Mvx.Resolve<IMvxViewModelLoader>().LoadViewModel(request, state)
DataContext
財產如果你這樣做在你的代碼...無論您使用的網頁代碼背後,一些信使 - 消息接收器或其他一些機制 - 這取決於你 - 但這是適合放入UI代碼項目的東西 - 這絕對是View的關注點。
最後一個撥出......雖然這是事實,設置窗格是UserControl
,一個LayoutAwarePage
也是UserControl
過 - 所以你可以使用彈出按鈕LayoutAwarePage
太 - 但不要指望看到OnNavigatedTo
調用當你做 - 例如請參閱SettingsFlyout
in http://code.msdn.microsoft.com/windowsapps/App-settings-sample-1f762f49
非常感謝您的明確回答。它似乎是您的博客文檔的最佳地點。是否有特定的時間點我可以開始閱讀關於您的博客的v3?愛N + 0系列,保持它! – 2013-05-05 15:10:42
是的,你可以在今天下午1:38開始閱讀! (其他時間也是允許的) – Stuart 2013-05-05 16:28:38
:)我的意思是,你什麼時候開始寫博客瞭解v3的變化? – 2013-05-06 17:50:31