我有一个场景。我正在使用 Prism 6.0 编写一个 WPF 应用程序,我想首先弹出一个子窗口,该窗口将具有用于三种不同 UI 设计的三个按钮。类似这样。
根据选择,我将更新MainWindowViewModel
并关闭子窗口,并显示MainWindow
.
直到这部分很好。但问题出在这部分之后,三个不同的按钮指向了三种不同的UI设计。特别是 ContentRegion1 和 ContentRegion2。这两个地区是不同的。
我已经看到,如果我通过 Button 输入命令,那么此代码将成功运行。但是如果我把它放进去,同样的也不会运行MainWindowViewModel
。
public MainWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
{
_regionManager = regionManager;
_eventAggregator = eventAggregator;
_regionManager.RequestNavigate("ContentRegion1", "firstUiDesign");
...
}
MainWindow看起来像这样......
ContentRegion1 和 ContentRegion2 是 XAML 中这样设计的两个
<Border CornerRadius="15" Grid.Column="0">
<StackPanel>
<ContentControl prism:RegionManager.RegionName="ContentRegion1" />
</StackPanel>
</Border>
<Border CornerRadius="15" Grid.Column="1">
<StackPanel Grid.Column="1" Margin="2">
<ContentControl prism:RegionManager.RegionName="ContentRegion2" />
</StackPanel>
</Border>
但是,我无法弄清楚我做错了什么,或者我需要在代码中添加什么额外的东西才能使其工作。
即使在 BootStrapper.cs 我也有这个代码
引导程序代码:
protected override DependencyObject CreateShell()
{
//return base.CreateShell();
return Container.Resolve<MainWindow>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterTypeForNavigation<TestUserControl>("firstUiDesign");
}
任何人都可以在这方面提供帮助。