我有一個場景。我正在使用Prism 6.0編寫一個WPF應用程序,我想首先彈出一個子窗口,它將有三個按鈕用於三種不同的UI設計。類似這樣。我們將更新MainWindowViewModel
,並關閉子窗口,並顯示MainWindow
。我如何使用Prism 6設置WPF應用程序中的兩個內容區域6
直到這部分是好的。但問題出在這部分之後,三個不同的按鈕指向三種不同的UI設計。特別是ContentRegion1和ContentRegion2。這兩個地區是不同的。
我已經看到,如果我通過一個按鈕發出一個命令,那麼這段代碼運行成功。但是,如果我把它放在MainWindowViewModel
中,也是一樣。
public MainWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
{
_regionManager = regionManager;
_eventAggregator = eventAggregator;
_regionManager.RequestNavigate("ContentRegion1", "firstUiDesign");
...
}
這樣的MainWindowlooks ...
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");
}
可以在這個任何人的幫助。
所以你的問題是,你不能顯示在firstUiDesign視圖ContentRegion1?你的引導程序是如何實現的? – mm8
我已經用Bootstrapper代碼更新了我的源代碼 – Debhere
您在哪裏創建MainWindowViewModel?您是否使用ViewModelLocator爲您創建它? – mm8