Template10 on GitHubのシェルをインプリメントするための手順をセカンダリウィンドウのシェルに適用しようとしましたが、動作していません。シェルでセカンダリウィンドウを開くにはどうすればいいですか?
このコード:
EのVUI 1808 16:12:27.203 D:\ SVN_Trunk \ソース\ UWP \桂\ UwpMain \のviewmodels \ MyPrimaryShellViewModel.cs
await DispatcherWrapper.Current().DispatchAsync(async() => { //The next line gets the exception var control = await BootStrapper.Current.NavigationService.OpenAsync( typeof(MySecondaryShell), null, "My Secondary Function"); control.Released += Control_Released; BootStrapper.Current.NavigationService.Navigate(typeof(MySecondaryPage)); });
は、この例外を取得します.275.MyFunction System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 Template10.Services.NavigationService.FrameFacade.NavigateでWindows.UI.Xaml.Controls.Frame.Navigate(タイプsourcePageType、オブジェクトパラメータ、NavigationTransitionInfo infoOverride)でUwp.Main.UwpMain_XamlTypeInfo.XamlUserType.ActivateInstanceで () (タイプページ、オブジェクトパラメータ、NavigationTransitionInfo infoOverride)at Template10.Services.NavigationService.NavigationService.d__34.MoveNext() ---例外がスローされた前の場所からのスタックトレースの末尾--- at System.Runtime.CompilerServices.TaskAwaiter。 ThrowForNonSuccess(タスクタスク) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク) at Template10.Services.NavigationService.NavigationService.Navigate(タイプページ、オブジェクトパラメータ、NavigationTransitionInfo infoOverride)at Template10.Services.ViewService.ViewService。 <> c__DisplayClass1_0。 < b__0> d.MoveNext() ---例外がスローされた前の場所からのスタックトレースの末尾---at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスクタスク) at System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(タスクタスク) at Template10.Services.ViewService.ViewService.d__1.MoveNext() ---例外がスローされた前の場所からのスタックトレースの末尾--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (タスクのタスク)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクのタスク)で System.Runtime.CompilerServices.TaskAwaiter`1.GetResult(AT ) Uwp.Main.ViewModels.MyPrimarでyShellViewModel。 <> c__DisplayClass63_0。 < b__0> d.MoveNext()
MySecondaryShellこのように構成されている:私は、そのシェルと主ウィンドウを開くと
public static HamburgerMenu HamburgerMenu => Instance.EmulatorHamburgerMenu;
public MySecondaryShell(INavigationService navigationService)
{
this.InitializeComponent();
HamburgerMenu.NavigationService = navigationService;
}
、Iは、シェルオブジェクトを作成し、それに対してのNavigationServiceを割り当てます。
しかし、セカンダリウィンドウを開くときに、typeof(MySecondaryShell)をパラメータとしてNavigationService.OpenAsyncを呼び出すだけです。 NavigationServiceがシェルで正しく設定されていないという問題はありますか? (my last questionのTemplate10コードを読むと、NavigationServiceがどこに設定されているのかわかりませんでした)。
シェルをセカンダリウィンドウとして開くにはどうすればよいですか?
あなたはすべての更新プログラムを持っていますか? –
@ NicoZhu-MSFTこんにちは、ごめんなさい - この素晴らしい答えに感謝します! –