C#Prism .RequestNavigate不更新View

时间:2016-12-19 09:13:53

标签: c# wpf mvvm prism

RequestNavigate我有很多痛苦。这是我的代码

public static void Navigate(this IRegionManager regionManager, Type type)
    {
        regionManager.RequestNavigate("MainRegion",
            type.FullName,
            result =>
                {
                });            
    }

在回调result.Error中为空。

RegionManager中的ActiveView数量正在正确更改。所需视图标记为活动。但在视觉上没有任何变化。

我在RequestNavigate

之前删除了所有视图
    regionManager.Regions["MainRegion"].RemoveAll();

并获得了可视化更新,所以一切都正确注册,但我需要我的视图模型才能保持活力。

1 个答案:

答案 0 :(得分:1)

如果您注册了与容器一起导航的视图类型:

public class ModuleAModule : IModule
{
    IUnityContainer _container;
    IRegionManager _regionManager;

    public ModuleAModule(IUnityContainer container, IRegionManager regionManager)
    {
        _container = container;
        _regionManager = regionManager;
    }

    public void Initialize()
    {
        _container.RegisterTypeForNavigation<ViewB>();
    }
}

...你可以像这样导航到它:

public static void Navigate(this IRegionManager regionManager, Type type)
{
    regionManager.RequestNavigate("MainRegion",
        new Uri(type.Name, UriKind.Relative),
        result =>
        {
        });
}