我在不使用 Shell 的情況下撰寫我的應用程式。所以我使用 IDialogService 創建了我自己的視窗并在我的一個模塊中打開。就我而言,區域管理器附加到殼牌,但由于我沒有它,當我嘗試從一個視圖導航到另一個視圖時,區域管理器不起作用。
我知道區域導航在外殼上運行良好(我對其進行了測驗),并且當我用 IDialogService 替換外殼時,相同的代碼停止作業。
這是我所擁有的
<Window x:Class="TechDocs.Views.MainSettingsWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d"
Title="MainSettingsWindow" Height="400" Width="750">
<Grid>
</Grid>
</Window>
第一個區域的內容。當我單擊按鈕時,它應該導航到第二個區域。
<UserControl x:Class="TechDocs.Views.SettingsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Button Command="{Binding NodeSelectedCommand}" Name="Button"/>
<ContentControl prism:RegionManager.RegionName="region"/>
</Grid>
</UserControl>
在模塊中,我將根視窗與包含第二個區域的按鈕和內容控制元件的 UserControl 連接起來。
public class SettingsModule : IModule
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
var dialogService = _containerProvider.Resolve<IDialogService>();
containerRegistry.RegisterDialog<MainSettingsWindow>("MyWindow");
containerRegistry.RegisterDialog<SettingsView>("customView");
containerRegistry.RegisterForNavigation<MyView>();
dialogService.Show("customView");
}
}
當我點擊按鈕時,我進入了這段代碼
public void SelectedNode()
{
regionManager.RequestNavigate("region", "MyView");
}
RequestNavigate 沒有給出任何例外,但螢屏上仍然沒有顯示任何內容。你能解釋一下我應該如何在我的視窗中注冊區域管理器嗎?
uj5u.com熱心網友回復:
嘗試使用以下靜態方法在自定義視窗中顯式初始化區域管理器:
RegionManager.SetRegionName(cc, "region");
RegionManager.SetRegionManager(cc, regionManager);
XAML:
<ContentControl x:Name="cc" prism:RegionManager.RegionName="region"/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/337964.html
上一篇:更改helix工具包加載的STL模型的顏色(材質)。無法從Model3DGroup轉換為GeometryModel3D
