我在 WP7 应用程序中使用的 Bing 地图控件存在问题。
当我导航到带有地图控件的页面时,它会启动GeoCoordinateWatcher. 当GeoCoordinateWatcher我有一些位置数据时,它会调用一种SetView()方法将地图居中在当前位置。还有一个按钮ApplicationBar也可以启动GeoCoordinateWatcher.
现在,问题是,当我第一次导航到此页面时,一切正常:GeoCoordinateWatcher开始,一段时间后给我位置数据,SetView()在我需要时调用和地图中心。按钮也一样。
但是,如果我按返回按钮返回主页,然后尝试再次导航到地图页面,则SetView()停止工作。在调试中,我看到围绕它的代码按预期工作并且传递给的数据SetView()是正确的,但是控件没有任何反应,并且更改视图的事件也不会触发。
我假设地图初始化(或处理导航)可能有问题,但我不知道在哪里挖掘。
编辑:
我尝试过Map.Center直接更改,但它的工作方式与SetView()不一样:它在第一次导航到页面时工作正常,在其他时间不起作用。
编辑2: 好的,它变得更奇怪了。在调试中,我看到我的地图中心实际上设置为正确的值。但是一个实际的控件显示了完全不同的位置,而我,四处移动地图,并没有改变我从代码中看到的值。
编辑 3:
我添加了一个按钮来ApplicationBar调用SetView()它,它工作正常。显然,当我SetView()因GeoCoordinateWatcher.PositionChanged事件引发而调用时,就会出现问题。我怎么能解决这个问题?