ユーザーコントロールからナビゲーションサービスを呼び出すことができません。 私は、メインページ上に1つのイベントハンドラを作成して、動作していないラオスのナビゲーションサービスを呼び出す場合でも、win7の電話機でユーザーコントロールからのナビ
私を助けてもらえますか?
ユーザーコントロールからナビゲーションサービスを呼び出すことができません。 私は、メインページ上に1つのイベントハンドラを作成して、動作していないラオスのナビゲーションサービスを呼び出す場合でも、win7の電話機でユーザーコントロールからのナビ
私を助けてもらえますか?
は、私は問題を参照してくださいと思うが、オースティンが示されているように、あなたの最初の説明で上に行くことがあまりありません。そのページに配置しているUserControl内からNavgationService(これはPhoneApplicationPageプロパティ)にアクセスしようとしているようです。
これらのAPIの多くの機能と同様に、いくつかのオプションがあります。まず、あなたがPhoneApplicationFrameにアクセスすることができます(あなたのページが含まれているとナビゲーションを管理する)とナビゲーションのためにそれを使用します。また
var frame = App.Current.RootVisual as PhoneApplicationFrame;
frame.Navigate(new Uri("/TargetPage.xaml", UriKind.Relative));
あなたが含まれているページに到達するまで、あなたはVisualTreeHelperを使用して、コントロールのビジュアルツリーを歩くことができます。
var page = GetParentOfType<PhoneApplicationPage>(this); // this is your user control
private static T GetParentOfType<T>(DependencyObject item) where T : DependencyObject
{
if (item == null) throw new ArgumentNullException("item");
T result;
var parent = VisualTreeHelper.GetParent(item);
if (parent == null) return null;
else if (parent.GetType().IsSubclassOf(typeof(T))
{
result = (T)parent;
}
else result = GetParameterOfType<T>(parent);
return result;
}
ご覧のとおり、VisualTreeのアプローチは、より多くのコードが含まれていますが、あなたがNavigationContextのようなものへのより多くのアクセスを持っている含むページオブジェクトを、取得する、など
ホープ・ワットというあなたの質問(とあなたの答え)として
3歳でしたが、これはまだ私をたくさん助けました:)ありがとう! – ecth
あなたが使用しているコードを表示し、何がうまくいかないかを説明してください - 例外がスローされていますか?それは単に静かにナビゲートしていませんか? –