Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 视图在第二个窗口区域中没有明显变化_C#_Wpf_Prism - Fatal编程技术网

C# 视图在第二个窗口区域中没有明显变化

C# 视图在第二个窗口区域中没有明显变化,c#,wpf,prism,C#,Wpf,Prism,我有一个使用v7.0.0396的Prism应用程序,最近我添加了第二个窗口,在用户需要登录时打开。第二个窗口保存在单独的模块中。当窗口打开时,应将其加载到“登录”视图中,如果用户需要创建帐户,则单击“创建帐户”按钮,该按钮将请求导航到所述窗口中的“创建帐户”视图 但是,目前我可以让它加载“SignIn”视图,但它无法正确导航到“CreateCount”视图。我已经获得了每个视图的viewmodels,以拥有INavigationAware界面,我可以看到从和到的导航按预期工作,但窗口中的视图没有

我有一个使用v7.0.0396的Prism应用程序,最近我添加了第二个窗口,在用户需要登录时打开。第二个窗口保存在单独的模块中。当窗口打开时,应将其加载到“登录”视图中,如果用户需要创建帐户,则单击“创建帐户”按钮,该按钮将请求导航到所述窗口中的“创建帐户”视图

但是,目前我可以让它加载“SignIn”视图,但它无法正确导航到“CreateCount”视图。我已经获得了每个视图的viewmodels,以拥有INavigationAware界面,我可以看到从和到的导航按预期工作,但窗口中的视图没有明显变化。 我首先注意到,即使加载了模块,区域“AuthenticateRegion”也没有添加到regionmanager的区域列表中。因此,我在Module.cs文件中添加如下区域:

var region = new SingleActiveRegion {RegionManager = _regionManager};
_regionManager.Regions.Add(RegionNames.AuthenticateRegion, region);
然后在下面,我将视图注册到区域:

_regionManager.RegisterViewWithRegion(RegionNames.AuthenticateRegion, typeof(SignIn));
_regionManager.RegisterViewWithRegion(RegionNames.AuthenticateRegion, typeof(CreateAccount));
在“SignInViewModel”中,我有导航到“CreateCount”视图并使用“RequestNavigate”功能的命令:

_regionManager.RequestNavigate(RegionNames.AuthenticateRegion, typeof(CreateAccount).FullName);
在AuthenticateWindow.xaml文件中,我有一个用于视图的内容控件:

<ContentControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.AuthenticateRegion}" />

根据我的经验,这应该足以工作,但它不会在对话框窗口中显示新视图


有什么想法吗?

您是否尝试将
RequestNavigate
调用分派到第二个窗口的线程中?我没有,但我现在一直在这样尝试:`Application.Current.Dispatcher.Invoke(()=>{u regionManager.RequestNavigate(RegionNames.AuthenticateRegion,typeof(CreateAccount.FullName)); }); ` 但我仍然得到了同样的东西,更像是
otherWindow.Dispatcher.Invoke(…)
…您是否尝试将
RequestNavigate
调用分派到第二个窗口的线程?我没有,但我现在一直在这样尝试:`Application.Current.Dispatcher.Invoke(()=>{u regionManager.RequestNavigate(RegionNames.AuthenticateRegion,typeof(CreateAccount.FullName)); }); ` 但我仍然得到了同样的东西,更像是
otherWindow.Dispatcher.Invoke(…)。。。