我需要为我的退休同事WPF项目添加一些功能。试图复制导航功能,但它们无法正常运行。 我想在主窗口中打开自己的XAML文件,但我得到的只是System.Object。
在这里,我将视图注册为:
public override void Initialize()
{
UnityContainer.RegisterType<RelationView>();
UnityContainer.RegisterType<RelationNavigationItemView>();
UnityContainer.RegisterTypeForNavigation<RelationView>();
RegionManager.RegisterViewWithRegion(RegionNames.NavigationRegion, typeof(RelationNavigationItemView));//this works out fine appears in the Navigation Part
}
RelationNavigationItemView只是一个按钮,应该在MainWindow中打开RelationView。
在这里应该发生以下情况:
private static Uri RelationViewUri = new Uri("/RelationView", UriKind.Relative);
private IRegionManager _regionManager;
private DelegateCommand _navigateCommand;
public RelationNavigationViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
}
public ICommand NavigateCommand
{
get
{
return _navigateCommand ?? (_navigateCommand = new DelegateCommand(NavigateCommandExecute, NavigateCommandCanExecute));
}
}
private bool NavigateCommandCanExecute()
{
return true;
}
private void NavigateCommandExecute()
{
_regionManager.RequestNavigate(RegionNames.MainContentRegion, RelationViewUri); //Here should the new window appears and the ViewModel Constructor should be called but nothing happens, I only get System.Object in the MainContentRegion
}
该项目运行的棱镜版本为 6.3 。
我希望有人可以帮助我。
最大的感谢和问候
答案 0 :(得分:0)
您应该只导航到“ RelationView”`。这里不需要uri,只会增加潜在的错误。
答案 1 :(得分:0)
谢谢你们,现在可以使用了。构造函数是错误的。
我希望使用UnityContainer而不是IUnityContainer。