2013-07-15 134 views
0

在Prims中,有兩種常見的方法來實現MVVM模式中的用戶交互。 http://msdn.microsoft.com/en-us/library/gg405494(v=pandp.40).aspx#sec10 1.實現視圖模型可用於啓動與用戶交互的服務。2.使用視圖模型引發的事件來表達與用戶交互的意圖以及視圖中綁定的組件到這些事件並管理交互的視覺方面。使用交互請求對象的MVVMCross用戶交互模式?

我認爲MvxPresentationHint應該是第一種方法。如何支持第二種方法?

回答

0

我不相信在這個階段任何人都會在視圖模型和視圖之間實現任何正式記錄的通用跨平臺dialog交互模式。

我個人使用幾種機制,包括:

  • 使用信使的視圖模型發送普通「問Y/N的要求,然後在視圖發送「回答是Y/N '的迴應。

  • 使用自定義演示覆蓋有彈出式對話框

這兩種方法都行之有效ShowViewModel行爲,是可測試的,只用過的「後臺代碼」量小,提供易於定製和使用只有弱引用 - 所以不會導致iOS中的任何內存問題。一般來說,在未來面臨類似的用戶需求時,我認爲我會將信使方法作爲我的首選 - 但這是個人設計偏好 - 而不是像棱鏡那樣的「最佳實踐」文章。

+0

使用messenger方法(例如MvxMessenger)時,它是處理所有視圖和視圖模型之間交互的全局服務。我認爲對於視圖模型和視圖模型來說更多的是本地方法。即viewmodel向其視圖引發一個通用事件,因此該視圖執行某個功能。 –

+0

非常好 - 謝謝 - 我期待在某處閱讀你的進展。 – Stuart