2011-12-14 1 views
0

パノラマのタイトルとして、PhoneApplicationPageから更新したいカスタムのUserControlを使用します。 C#内のカスタムPanorama TitleTemplateにアクセスするには?

Grid grid = VisualTreeHelper.GetChild(panorama, 0) as Grid; 

しかし、それはパノラマが0子供を持っていることを述べている。しかし、そうするために、私はそれにアクセスする必要がある、私はパノラマの子供を取得するためにしようと試みました。それは普通ですか? Panorama.TitleTemplateにアクセスする方法を知っていますか?

ありがとうございます!

+0

なぜコントロールを更新する必要がありますか?データバインディングを更新し、最終的なレイアウト変更にDataTemplateを使用するのはなぜですか? –

+0

私はすでにDataTemplateを使用していますが、OnNavigatedToで渡されたパラメータに応じてUserControlのDataContextを更新する必要があります。 私はページのdatacontextを更新することができますが、私はそれにアクセスすることができないので、UserControlのためにそれを行う方法がわかりません – Benoit

+0

datacontextをviewmodelにデータバインドすることを防ぎません。 –

答えて

1

これを防ぐにはどうすればよいですか?

<controls:Panorama Title="{Binding}"> 
    <controls:Panorama.TitleTemplate> 
     <DataTemplate> 
      <local:MyUserControl DataContext="{Binding}" /> 
     </DataTemplate> 
    </controls:Panorama.TitleTemplate> 
    ... 
</controls:Panorama> 
+0

私は、タイトルのバインディングを変更すると、それはUserControlの変更を伝播するのだろうか?私は子供のブラウジングで私の問題を解決しましたが、それはきれいなのであなたのやり方を調査します – Benoit

+1

それは観測可能なプロパティであれば、それはすべきです。しかし、UserControlの依存関係プロパティを公開し、それらを直接バインドすることを検討してください。これは、UserControlsを使用する方法です。 –

関連する問題