私はSL4アプリケーションを構築しています。私は2つのコントロールを持っています。トップの検索バーとボトムのお気に入りバーは、すべてのページに存在したいと思っています。私はこれを行う最良の方法が何であるか分かりません。Silverlight:すべてのページに同じコントロールを表示
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>
は私の現在のアプローチは、視覚的なルートとしてNAVフレームを使用します次に、フレーム内のページを変更して、永続的な場所の要素。これは正しいアプローチですか、それとも他の好みのパターンがありますか?
しかし、これを行うと、TopSearchBar
とBottomFavoritesBar
のユーザーコントロールがナビゲーションを行う方法がわかりません。 (一般的には、私はUserControl
から直接ナビゲーションを行うするかどうかはわかりません。)
TopSearchBar
は、各ページのメンバーだったとき、私は、各ページのコードビハインドにこのコードを持っていると思います:
topSearchBar.ParentPage = this;
TopSearchBar
は、ナビゲーションを行うには、このリファレンスを使用することができます。
ParentPage.NavigationService.Navigate(new Uri("/SearchPage.xaml?q=" + searchBox.Text, UriKind.Relative));
はこれを行うには良い方法はありますか?やや厄介な気がする。ナビゲーションにページへの参照が必要な場合は、NavFrame
からどのように参照を渡すことができますか?
あなたはこれを行うには依存関係プロパティを使用する方法を示しすることはできますか?私は彼らが何であるか、なぜここにそれらが必要なのかは分かりません。 –
@Rosarch:私の編集を参照してください。 – AnthonyWJones
nice!それは素晴らしい作品です。私はここで、通常のCLRプロパティだけでなく、依存プロパティを必要としている理由を説明できますか? –