将Prism区域管理与WPF导航服务相结合的最佳方法是什么?

时间:2010-06-30 13:28:10

标签: wpf navigation prism frame

我有一个定义区域的Prism(CAL)shell。每个地区负责其导航日志,一些地区将继承父母。

问题是您无法在Frame的内容模板中定义Prism区域。在Shell.xaml中实现NavigationServices并与Prism一起玩的最佳方法是什么。

以下代码导致区域经理因未找到区域而哭泣。我理解为什么,但希望对最佳实践有所了解。

    <Frame JournalOwnership="OwnsJournal" NavigationUIVisibility="Hidden">
    <Frame.Content>
        <DockPanel>
            <ItemsControl Name="NavigationFrame" DockPanel.Dock="Top" 
                          cal:RegionManager.RegionName="{x:Static p:TopLevelShellRegionNames.NavigationRegion}"/>

            <Grid>
                 <ContentControl Name="ContentFrame" 
                                 cal:RegionManager.RegionName="{x:Static p:TopLevelShellRegionNames.ContentRegion}"/>
            </Grid>                      

        </DockPanel>
    </Frame.Content>
</Frame>

感谢。

1 个答案:

答案 0 :(得分:2)

直接在Frame中定义区域并定义帧“Source”或“Content”属性中的任何内容是解决方案。

 <Frame JournalOwnership="OwnsJournal" cal:RegionManager.RegionName="{x:Static p:TopLevelShellRegionNames.ContentRegion}">