container.RegisterType<object, LabStatusView>("LabStatusView");
Uri LabStatusViewUri = new Uri("pack://application:,,,/LabStatus;component/LabStatusView.xaml",
UriKind.Absolute);
regionManager.RequestNavigate("HorizonNavigatorView",LabStatusViewUri,NavigationCompleted);

我正在使用它导航到LabStatusView,这看起来很简单。

执行requestNavigate之后的ObjectStates:
  • regionManager.Regions.ActiveRegion包含一个“Object”类型的对象,而不是LabStatusView。
  • 对我而言,使用Unity的唯一怪癖是我已经使用RegiterType方法的重载注册了我的类型。

  • 有什么建议我在这里做错了吗?

    最佳答案

    导航比代码中的操作容易得多。这是我为项目完成的方式。

    //Register your View on Startup
    container.RegisterType<object, LabStatusView>("LabStatusView");
    
    //Navigation works like this
    var labStatusView = new Uri("LabStatusView", UriKind.Relative);
    regionManager.RequestNavigate("HorizonNavigatorView", labStatusView);
    

    你可以这样尝试吗?

    同样,许多人将静态类用于其Region和View名称,以避免使用“魔术字符串”。
    这样的事情。
    public class RegionNames
    {
      public const string HorizonNavigatorView = "HorizonNavigatorView";
    }
    public class ViewNames
    {
      public const string LabStatusView = "LabStatusView";
    }
    

    09-30 11:45