アイテムのリストを表示するためのページ(フレーム)と、アイテムの詳細をダウンロードして表示するためのページを備えたWindows8用のアプリケーションがあります。通知の送信にもMVVMLightを使用しています。
アプリケーションの使用は次のようになります。
メインページを開く
リストページに移動
Frame.Navigate(typeof(MyPage));
アイテムを選択
//Complete logic Frame.GoBack();
メインページに戻り、ビューモデルでファイルのダウンロードを開始し、BeginDownloadFileという1つのNotificationMessageを送信し、ダウンロード後にEndDownloadFileという1つのNotificationMessageを送信します。
最初にステップ2、3、および4を実行すると、NotificationReceivedメソッドが1回ヒットし、2回目は2回ヒットします。
private async void NotificationMessageReceived(NotificationMessage msg)
{
if (msg.Notification == Notifications.BeginDownloadFile)
{
FileDownloadPopup.IsOpen = true;
}
else if (msg.Notification == Notifications.EndDownloadFile)
{
FileDownloadPopup.IsOpen = false;
}
}
追加情報:FileDownloadPopupは1つしかありませんが、毎回、NotificationMessageReceivedメソッドが呼び出されるたびに追加のポップアップが表示されます。
私の唯一の結論は、アプリで前後に移動する間に、複数のMainPageが作成され、閉じられないということです。これにより、多くのNotificationsMessageReceivedメソッドは、通知が届くのを待っているだけで、ポップアップを表示できます。
2つの質問があります:1。これはWindows 8アプリの通常の動作のように聞こえますか?2. MainPageのすべてのインスタンスを閉じる、または新しいインスタンスを作成せずに前のインスタンスに戻るにはどうすればよいですか?
質問を書き留める前に、重要なことを見逃してしまった場合はお知らせください。