ディスパッチャにアクセスするビューへの参照が必要です。何とか保存する場合は、下記を参照してください。別の方法としては、これを呼び出すことにより、すべてのビューにアクセスすることができます。
IReadOnlyList<CoreApplicationView> views = CoreApplication.Views;
しかしビューが直接アクセス識別子を持っていないので、あなたは、ビューがそれをディスパッチャで活性化された後、次を呼び出すことにより、識別子を取得する必要があります:
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => {
Frame frame = new Frame();
frame.Navigate(typeof(SecondaryPage), null);
Window.Current.Content = frame;
// You have to activate the window in order to show it later.
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
それから私は、IDSとあなたのビュー間のマッピングを持っているために、独自のIDictionary<int, CoreApplicationView>
を作成することをお勧め。また、あなたはまた、いくつかの最近の経験の後
newViewId = ApplicationView.GetApplicationViewIdForWindow(newView.CoreWindow);
(さらにいくつかのdocumentation)