我在我的应用程序中使用了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