主页的区域设置后可以默认选中
void CreateMenuBar()
{
MenuBars.Add(new MenuBar() { Icon = "Home", Title = "首页", NameSpace = "IndexView" });
MenuBars.Add(new MenuBar() { Icon = "Cog", Title = "设置", NameSpace = "SettingsView" });
}
/// <summary>
/// 配置首页初始化参数
/// </summary>
public void Configure()
{
regionManager.Regions[PrismManager.MainViewRegionName].RequestNavigate("IndexView");
}
但是进入二级页面后,再设置的区域无法默认选中
public class SettingsViewModel : BindableBase
{
public SettingsViewModel(IRegionManager regionManager)
{
MenuBars = new ObservableCollection<MenuBar>();
this.regionManager = regionManager;
NavigateCommand = new DelegateCommand<MenuBar>(Navigate);
CreateMenuBar();
//this.regionManager.Regions[PrismManager.SettingsViewRegionName].RequestNavigate("SettingsUserView");
}
private void Navigate(MenuBar obj)
{
if (obj == null || string.IsNullOrWhiteSpace(obj.NameSpace))
return;
regionManager.Regions[PrismManager.SettingsViewRegionName].RequestNavigate(obj.NameSpace);
}
public DelegateCommand<MenuBar> NavigateCommand { get; private set; }
private ObservableCollection<MenuBar> menuBars;
private readonly IRegionManager regionManager;
public ObservableCollection<MenuBar> MenuBars
{
get { return menuBars; }
set { menuBars = value; RaisePropertyChanged(); }
}
void CreateMenuBar()
{
MenuBars.Add(new MenuBar() { Icon = "Cog", Title = "系统设置", NameSpace = "SettingsUserView" });
MenuBars.Add(new MenuBar() { Icon = "Palette", Title = "个性化", NameSpace = "SkinView" });
MenuBars.Add(new MenuBar() { Icon = "Information", Title = "关于更多", NameSpace = "AboutView" });
}
使用this.regionManager.Regions[PrismManager.SettingsViewRegionName].RequestNavigate("SettingsUserView");
无法跳转,延迟执行也没用,请问这是什么原因?
看看.................
在Prism中,当你使用RequestNavigate来导航到一个区域的视图时,确保你的视图已经被注册到对应的区域。如果视图未被正确注册,RequestNavigate将无法找到对应的视图并无法导航。
在你的情况下,你希望在SettingsViewModel中导航到PrismManager.SettingsViewRegionName区域的视图。确保以下几点:
确保在模块初始化或应用程序启动时,已经正确注册了你的视图到相应的区域。这可以通过使用RegionManager来完成,就像你在Configure方法中做的一样。
确保PrismManager.SettingsViewRegionName 区域已经被创建,如果没有,你需要在应用程序初始化时创建这个区域。
检查是否有错误的视图名称或命名空间,确保它们与实际的视图匹配。
确保在调用RequestNavigate之前,你的视图已经被添加到区域。
如果你仍然遇到问题,可以使用Prism的调试功能,设置断点来查看具体的导航问题。你可以查看是否有任何错误消息或异常,以帮助找到问题所在。此外,确保你的视图和视图模型正确绑定和配置,以便正确显示和导航到你的视图。