【发布时间】:2017-01-30 16:40:05
【问题描述】:
我正在尝试实现一个导航日志,它除了 uri 和导航参数之外,还有一个字符串,其中包含在请求导航时创建的一些信息:
public class ExtendedNavigationParameters : NavigationParameters
{
public string Titulo { get; set; }
}
所以,当我想导航到某个特定对象时,我想传递一些标题以及 Uri 和参数集合,所以我在扩展参数对象中设置了该属性:
ExtendedNavigationParameters parameters = new ExtendedNavigationParameters { {"Maquina", Maquina}};
parameters.Titulo = Maquina.Descripcion;
然后这个参数通过RequestNavigate方法发送:
_regionManager.RequestNavigate(IdRegion, Uri, parameters);
此时,参数对象的类型为ExtendedNavigationParameters。但是,导航完成后,当我尝试通过RegionNavigationJournal.CurrentEntry.Parameters访问此信息槽时,对象的类型为NavigationParameters(尝试转换为ExtendedNavigationParameters时出现异常)。
这是为什么?对象是否在某个时候重新创建?如何将该信息存储在RegionNavigationJournal 中?
【问题讨论】:
-
这似乎不是一个好主意。为什么要扩展
NavigationParameters?您可以将任何对象作为名称/值对添加到参数集合中。将名称设置为您想要的标题,或将标题添加到值对象,或使用元组或用于将标题和对象作为一个复杂对象传递的特殊对象。 -
@R.Richards,并没有真正想到这一点。这对我有用。详细说明为答案,我将其设置为已解决。谢谢。
标签: c# navigation prism