我在我的應用程序中使用了Silverlight 4 + PRISM + MVVM。我想將一個複雜的對象傳遞給另一個頁面。我不知道該怎麼做。我不能/不想使用URI參數。如何在Silverlight 4頁面之間傳遞複雜對象+ PRISM
1
A
回答
0
我實現了INavigationAware接口,並在OnNavigatedFrom()方法中的navigationContext.NavigationService.Region.Context中設置了複雜對象。現在在下一頁中,我再次實現了INavigationAware接口,現在我在OnNavigatedTo()中檢查相同的值以獲取值。
更新:我在另一個問題中發佈了帶有代碼的答案。這裏提到它的參考 -
首先獲得來自INavigationAware接口視圖模型 -
public class MyViewModel : INavigationAware
{ ...
然後就可以實現OnNavigatedFrom和設置要通過導航上下文如下對象 -
void INavigationAware.OnNavigatedFrom(NavigationContext navigationContext)
{
SharedData data = new SharedData();
...
navigationContext.NavigationService.Region.Context = data;
}
並且當您想要接收數據時,在第二個視圖模型中添加以下一段代碼 -
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
{
if (navigationContext.NavigationService.Region.Context != null)
{
if (navigationContext.NavigationService.Region.Context is SharedData)
{
SharedData data = (SharedData)navigationContext.NavigationService.Region.Context;
...
}
}
}
希望它可以幫助你!
0
也許EventAggreagtor將是有用的
0
「問你想要的東西」是統一的方式。您可以與任何其他統一對象共享註冊爲單例的對象。只需在viewmodels的構造函數中指定該共享對象的接口即可。
正如Dmitry Kushnier所提到的,您還可以通過EventAggregator將複雜類型作爲參數傳遞。
相關問題
- 1. 如何在Silverlight中傳遞對象之間的頁面?
- 2. 在頁面之間傳遞對象
- 3. 如何在頁面之間傳遞對象
- 4. 如何在silverlight和asp.net之間傳遞對象
- 5. 如何在Windows應用商店應用中的頁面之間傳遞複雜對象?
- 6. 如何在類之間傳遞對象
- 7. 在對象之間傳遞對象
- 8. Zend Framework和jQuery - 在頁面之間傳遞對象
- 9. 在XAML頁面之間傳遞數據對象
- 10. 在頁面之間傳遞和存儲對象
- 11. 雖然意圖傳遞複雜對象
- 12. 如何在mvc和javascript之間傳遞複雜數據
- 13. 如何在複雜的導航堆棧之間傳遞變量
- 14. 將複雜對象傳遞給活動
- 15. 複雜對象傳遞到ko.mapping.fromJS
- 16. ASP.NET會話替代頁面之間傳遞對象
- 17. 如何在動作類和jsp頁面之間傳遞對象數據?
- 18. 如何在ASP.net c#中的頁面之間傳遞對象,而不是值?
- 19. 傳遞aspx頁面之間的C#對象
- 20. 使用ajax傳遞複雜對象MVC
- 21. 的Javascript Windows.Location傳遞複雜JSON對象
- 22. 在頁面之間傳遞狀態?
- 23. Android - 使用Parcelable或Json在活動之間傳遞複雜對象?
- 24. PRISM Silverlight 4 MEF - IActiveAware
- 25. 如何改善在導航到PRISM中的新視圖時傳遞對象4
- 26. 如何在導航到PRISM中的新視圖時傳遞對象4
- 27. 在頁面之間傳遞數據ASP.NET
- 28. 在asp.net頁面之間傳遞XML
- 29. PHP在頁面之間傳遞消息
- 30. 在asp.net頁面之間傳遞數據
謝謝。沒有更簡單的東西嗎? – whihathac