1

MainPageとDetailPageがあります。どちらも静的クラスを使用してデータを受信します。DataServiceと呼ばれるこのクラスは、INotifyPropertyChangedインターフェイスを実装し、「IsLoading」と呼ばれるプロパティを実装します。DataService内のメソッドが呼び出されるたびに、IsLoadingをtrueに設定します。DataService自体は、DataServiceをインスタンス化するGlobalsと呼ばれる静的クラスに含まれています(これをシングルトンパターンで実装します)

メインページでは、ポップアップが表示されます。

<Page.Resources>
  <Common:DataService x:Key="DataService" />
</Page.Resources>

<Popup IsOpen="{Binding IsLoading}" DataContext="{StaticResource DataService}">...</PopUp>

MainPageでは、すべてが正常に機能します。DataServiceがWebサービスに何かを要求すると、ポップアップが表示されます。完了すると、ポップアップが非表示になります。

で変更しFrame.Navigate(typeof(DetailPage));、DetailPageがデータサービスのいくつかのメソッドを呼び出し始めると、ポップアップも表示されますが、メインページと同じページには表示されません。左上隅に表示されます。

それについての面白い部分は次のとおりです。MainPageに戻ってデータをロードすると、2つのポップアップが表示されます。もう一度DetailPageに移動すると、3番目のポップアップが表示されます。このポップアップがインスタンス化されているようです。

次のポイント:ポップアップのDataContextを設定し、でDataContextをOnNavigatingTo削除するOnNavigatingFromと、必要なポップアップが表示されたままになり、2番目のポップアップがインスタンス化されません。

ここで何が問題になりますか?

4

0 に答える 0