我尝试模拟NavigationParameters,并将GetNavigationMode()设置为NULL。有没有更好的方法来模拟扩展方法?
答案 0 :(得分:1)
这也困扰了我一段时间,我终于找到了至少可以解决的问题。 This问题表明,您实际上可以将内部参数添加到NavigationParameters中,只是不会显示在智能感知中。我的测试代码最终看起来像:
var navParams = new NavigationParameters();
navParams.AddInternalParameter("__NavigationMode", NavigationMode.Back);
希望这会有所帮助!
答案 1 :(得分:1)
如@ thomas-kison所指出,AddInternalParameter
api似乎不再存在。 search through the Prism repo仅显示@batesiiic在其答案中引用的issue。
要通过解决@ esteban-chornet的问题来增加@ thomas-kison的答案,我发现该解决方案将通过将INavigationParametersInternal
参数作为INavigationParameters
传递来起作用:
// arrange:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.Back);
// act:
_myCoolPageViewModel.OnNavigatedTo(navParams as INavigationParameters);
// assert whatever should happen in OnNavigatedTo given a NavigationMode of NavigationMode.Back
希望这可以帮助某人!
答案 2 :(得分:0)
不是为我锻炼。但是您的参考资料帮助我找到了经过编译的解决方案(也许是版本问题,我使用Prism 7.1
:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.New);