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