我有一個mvvmcross xamarin項目我想弄清楚我應該如何在特定情況下跨屏幕發送數據的最佳方式。如何使用mvvmcross在屏幕之間傳遞數據
我的第一個屏幕是一個搜索過濾器,它包含用戶選擇用於過濾結果的各種標準。第二個屏幕是結果列表屏幕。
我已經看到了處理這個問題許多選擇:
1)使用init方法 - 我在這裏的問題是,當我通過自定義對象的值總是空/默認。如果我傳遞一個字符串,它工作正常。如果我可以傳遞自定義對象,我將通過EntityFilter或實體列表,這是結果。我必須查詢過濾器頁面上的實體,因爲他們在一個過濾器上選擇的內容會根據實體保留的內容而影響其他實體。我已將以下內容添加到AssemblyInfo.cs中,但它仍然無效。
[assembly: InternalsVisibleTo("Cirrious.MvvmCross")]
2)使用消息。這裏的問題是,過濾器更改時不會創建結果頁面,因此消息傳遞將不起作用。
3)使用內存對象。我創建了一個只包含實體列表的公共屬性的結果服務。它在IoC中被註冊爲懶惰單例(與所有服務一樣)。此方法的工作原理是我目前的解決方案。但它並不「感覺」正確。這感覺就像我做錯了什麼或打破了最佳實踐。這是它應該完成的方式嗎?
感謝您的信息..我在想我應該使用初始化和傳遞只有簡單的類型,因爲我現在做的方式我不能100%確定數據將是相同的 –