在导航Prism中松散耦合模块中定义的视图时,如何更新相应的ViewModel?

时间:2017-12-12 20:33:54

标签: c# wpf mvvm prism prism-6

我有一个定义两个模块的应用程序,为简单起见,让我们使用ModuleA和ModuleB。每个人都拥有自己的ViewModel(例如,ViewModelA,ViewModelB)。加载第一个模块(ModuleA)时,将实例化ViewModelA,将数据显示到ViewA(该模块中的默认视图)。与ModuleB相同。每个View都通过RequestNavigation加载,在RibbonView中单击shell中定义的按钮。所以,按钮A调用

regionManager.RequestNavigate(regionName: "ContentRegion", source: uri, navigationCallback: NavigationCompleted);

使用URI参数:

uri = new Uri(uriString: typeof(ViewA).FullName, uriKind: UriKind.Relative);

该应用程序正在运行,但问题是:ViewModelA显示的数据通过服务类修改ViewModelB显示的数据。因此,当我在ViewA中修改数据然后导航到ViewB时,数据仍然相同,迫使我重新加载整个应用程序以查看ViewB中的更改。那么,我怎样才能强制重新加载ViewModelB(重新实例化或者其他什么),所以每次修改ViewModelA在ViewA中提供的数据时,ViewB中都会显示更改?

截至目前,ViewModelA和ViewModelB只填充一次,当我在bootstrapper中注册模块时会发生这种情况。

提前完成。

0 个答案:

没有答案