WP7 アプリケーションで使用している Bing Maps コントロールに問題があります。
マップ コントロールのあるページに移動すると、GeoCoordinateWatcher
. 位置データがある場合は、現在の位置を地図の中心にGeoCoordinateWatcher
するメソッドを呼び出します。を開始SetView()
するボタンもあります。ApplicationBar
GeoCoordinateWatcher
さて、問題は、私が最初にこのページに移動したとき、すべてが正常に機能することです。GeoCoordinateWatcher
開始し、しばらくすると位置データが表示されSetView()
、必要に応じて呼び出しと地図の中心も表示されます。ボタンも同様。
しかし、[戻る] ボタンを押してメイン ページに戻り、もう一度マップ ページに移動しようとすると、SetView()
動作が停止します。デバッグでは、それを取り巻くコードが期待どおりに機能し、渡されたデータSetView()
が正しいことがわかりますが、コントロールでは何も起こらず、ビューを変更するためのイベントも発生しません。
マップの初期化 (または移動時の破棄) に問題がある可能性があると想定していますが、どこを掘ればよいかわかりません。
編集:
私はMap.Center
直接変更しようとしましたが、まったく同じようにはSetView()
機能しません:ページが最初にナビゲートされたときは正常に機能し、それ以外の場合は機能しません。
編集2: わかりました、それは奇妙になります。デバッグ中に、マップの中心が実際に正しい値に設定されていることがわかります。しかし、実際のコントロールはまったく異なる場所を示しており、地図を動かしても、コードから見える値は変わりません。
編集 3:
ボタンを追加しApplicationBar
て呼び出すだけでSetView()
、正常に動作します。どうやら、イベントSetView()
発生の結果として呼び出すと問題が発生するようです。GeoCoordinateWatcher.PositionChanged
どうすればそれを回避できますか?