2011-10-22 11 views
1

私はWP7の電話アプリでMVVMアーキテクチャを使用しています。私の現在のビューは、親ページの内部に存在するユーザーコントロールです(標準ページ - スタンドアロンユーザーコントロールではありません)。私はメインページを親として、ユーザーコントロールの "親"プロパティに渡しました。そして、私は親のすべてのコントロールにアクセスできます。たとえば:これは親でロック可能なピボットにアクセスするために動作します:親からのアプリケーションバーを取得 - Windows Phone

Dim p As LockablePivot 
p = MyParent.FindControl("myLockablePivot") 
If p IsNot Nothing Then 
..do something with the pivot 
End If 

私の問題は親にApplicationBarにアクセスしています。これは動作しません。私はトリプルx:アプリケーションバーに割り当てられた名前をチェックしました。 (null参照例外):

Dim ap As ApplicationBar 
    ap = MyParent.FindName("appBar") 

    ap.IsVisible = False 

助けていただければ幸いです。

答えて

3

私は同じ問題を打つが、ナイジェルはthis answerで指摘するように、

「ApplicationBar理由は、それが本当にビジュアルツリーに収まらないということで、標準のSilverlightオブジェクトことができませんxにバインドされていないとx:Nameが機能しません。

PhoneApplicationPageクラスにはApplicationBarというプロパティがあります。これを使用してアプリケーションバーにアクセスし、そこからボタンまたはメニュー項目を取得できます。

ここ

は、私はテキストをローカライズするために私のページのコンストラクタでやったのC#の例です:、

public MyPage() 
{ 
    InitializeComponent(); 

    (this.ApplicationBar.Buttons[0] as ApplicationBarIconButton).Text = AppResources.event_add_menu_item; 
} 

確かアイテムを見つけるためにインデックスを使用して、キャストすることは残念ですが、少なくともそれ作品!

関連する問題