请求从ItemsControl区域导航视图* away *

时间:2014-03-17 15:49:19

标签: c# wpf prism region

我正在开发基于Microsoft Prism框架的WPF应用程序。该应用程序的一个方面使用ItemsControl区域。我可以通过ItemsControlRequestNavigate添加视图,以查看该地区的视图。但是,我没有看到从该区域RequestNavigate 远离的方法,即,以便从该区域中删除视图,并在视图的ViewModel中触发“OnNavigatedFrom”回调。

我看到从ItemsControl区域删除视图的唯一方法是手动删除区域中的视图,如下所示:

IRegion myRegion = _regionManager.Regions["MyRegion"];
myRegion.Remove(viewToRemove);

不幸的是,这对我不起作用,因为我需要在向区域添加/删除视图时触发OnNavigatedToOnNavigatedFrom回调。

我错过了什么吗?有没有办法从区域RequestNavigate查看远离

1 个答案:

答案 0 :(得分:0)

根据我的理解,如果您不想导航到特定的 View ,则无需执行 OnNavigatedTo / From 方法。

无论如何,如果您需要在从 ItemsControl View 之前执行 OnNavigatedFrom() 实现>,您可以在手动删除查看之前手动调用它。

如果您不需要它,可以将null传递给 NavigationContext 参数,我相信您不需要它,否则您可以手动创建它。解决方案如下:

INavigationAware viewModel = viewToRemove.DataContext;
viewModel.OnNavigatedFrom(null);
IRegion myRegion = _regionManager.Regions["MyRegion"];
myRegion.Remove(viewToRemove);

我希望这对你有所帮助。