Ich baue eine SL4 App. Ich habe zwei Steuerelemente, eine obere Suchleiste und eine untere Favoritenleiste, die ich auf jeder Seite sehen möchte. Ich bin nicht sicher, was der beste Weg ist, dies zu tun.Silverlight: Zeigen Sie die gleichen Kontrollen auf jeder Seite
Mein aktueller Ansatz verwendet einen nav Rahmen als Root-visuellen:
App.xaml.cs:
this.RootVisual = new NavFrame();
NevFrame.xaml:
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<my:TopSearchBar x:Name="topSearchBar" Grid.Row="0"/>
<navigation:Frame x:Name="navigationFrame" Source="/HomePage.xaml" Grid.Row="1"/>
<my:BottomFavoritesBar x:Name="bottomFavoritesBar" Grid.Row="2"/>
</Grid>
Dann würde ich die Seiten innerhalb des Frames wechseln und das Persistente verlassen Elemente an Ort und Stelle. Ist das der richtige Ansatz oder gibt es ein anderes bevorzugtes Muster?
Wenn ich dies jedoch tun, bin ich mir nicht sicher, wie die TopSearchBar
und BottomFavoritesBar
Benutzersteuerelemente Navigation ausführen können. (Im Allgemeinen bin ich nicht sicher, wie die Navigation von einem UserControl
direkt zu tun.)
Wenn TopSearchBar
ein Mitglied jeder Seite war, habe ich diesen Code auf jeder Seite des Code-Behind haben würde:
topSearchBar.ParentPage = this;
TopSearchBar
könnte dann benutzen Sie diese Referenz Navigation zu tun:
ParentPage.NavigationService.Navigate(new Uri("/SearchPage.xaml?q=" + searchBox.Text, UriKind.Relative));
gibt es einen besseren Weg, dies zu tun? Es fühlt sich etwas peinlich an. Wenn die Navigation einen Verweis auf eine Seite erfordert, wie kann ich diese Referenz von NavFrame
übergeben?
Können Sie zeigen, wie Sie Abhängigkeitseigenschaften verwenden würden, dies zu tun? Ich bin mir nicht sicher, was genau sie sind oder warum du sie hier brauchst. –
@Rosarch: Siehe meine Bearbeitung. – AnthonyWJones
nett! das funktioniert großartig. Können Sie mir erklären, warum ich hier eine Dependency-Eigenschaft brauche und nicht nur eine normale CLR-Eigenschaft? –