How to implement WPF NavigationServices using Prism?

Topics: Prism v2 - WPF 4
Jun 30, 2010 at 2:52 PM

I have a Prism (CAL) shell with defined regions. Each region is responsible for its Navigation Journal and some regions will inherit from the parent.

The issue is that you cannot define Prism regions in a Frame's content template. What is the best approach for implementing NavigationServices in the Shell.xaml and playing nice with Prism.

The following code results in the region manager crying about not finding the regions. I understand why, but would like some input on the best practice.

 

<Frame JournalOwnership="OwnsJournal" NavigationUIVisibility="Hidden">
        <Frame.Content>
            <DockPanel>
                <ItemsControl Name="NavigationFrame" DockPanel.Dock="Top" 
                              cal:RegionManager.RegionName="{x:Static p:TopLevelShellRegionNames.NavigationRegion}"/>
                <Border BorderBrush="#888888" BorderThickness=".5" Margin="0 10 0 0">
                    <Border BorderBrush="#222222" BorderThickness=".5">
                        <Grid>
                            <ContentControl Name="ContentFrame" 
                                            cal:RegionManager.RegionName="{x:Static p:TopLevelShellRegionNames.ContentRegion}"/>
                        </Grid>
                        <Border.Background>
                            <ImageBrush ImageSource="Images/background.png" Stretch="Fill"/>
                        </Border.Background>
                    </Border>
                </Border>
            </DockPanel>
        </Frame.Content>
    </Frame>

Oct 4, 2010 at 8:43 PM

Hi,

There is no guidance on this topic in Prism out-of-the-box. But other uses have tried to achieve similar scenario, so you could take a look at the following forum threads:

 

Fernando Antivero
http://blogs.southworks.net/fantivero