Gps WP7仿真器中的测试位置

Gps WP7仿真器中的测试位置,gps,location,windows-phone-7.1,Gps,Location,Windows Phone 7.1,所以我用但在测试中没有运气来决定它是否有效。代码的唯一变化是,我没有更改TextBlock,而是在函数之外设置了一个声明的静态GeoCoordinate对象 public static void PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { coord = e.Position.Location; } publicstaticvoid位置已

所以我用但在测试中没有运气来决定它是否有效。代码的唯一变化是,我没有更改TextBlock,而是在函数之外设置了一个声明的静态GeoCoordinate对象

public static void PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        coord = e.Position.Location;
    }
publicstaticvoid位置已更改(对象发送方,geoppositionchangedventargs e)
{
坐标=e.Position.Location;
}
我将状态更改为,而不是显示在文本框中,显示带有OK按钮的MessageBox,并删除了按钮事件

在主页呈现中,我有:

private void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        if (watcher == null)
        {
            watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
            watcher.MovementThreshold = 20;

            watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(StatusChanged);
            watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(PositionChanged);
        }
        watcher.Start();
        if (!App.ViewModel.IsDataLoaded)
        {
            string blah = "";
            blah += coord.Latitude.ToString();
            blah += "; " + coord.Longitude.ToString();
private void主页\u已加载(对象发送方、路由目标方)
{
如果(观察者==null)
{
watcher=新的地理坐标记录器(GeoPositionAccuracy.Default);
watcher.MovementThreshold=20;
watcher.StatusChanged+=新事件处理程序(StatusChanged);
watcher.PositionChanged+=新事件处理程序(PositionChanged);
}
watcher.Start();
如果(!App.ViewModel.IsDataLoaded)
{
字符串blah=“”;
blah+=coord.Latitude.ToString();
blah+=“;”+coord.Longitude.ToString();
但是,如果我不初始化coord,它会出错(可以理解),但如果我这样做=new geocordinate();它会返回所有数值项的NaN。我在事件处理程序中设置了从未命中的断点(尽管是预期行为?)

在emulator中,我使用了>>功能,将其设置为live并选择了几个位置,将切换位置的时间设置为10秒,并在运行调试时播放。我是否在调试/运行emulator的位置部分时出错


更新:在更新它以删除字符串blah项以创建基于位置的列表后,它似乎正在工作。

您的
位置更改
方法会更新您的坐标,但您除了在有机会设置坐标之前从未阅读过它,如果坐标在ViewMod上,您的代码也不会使用任何数据绑定来自动更新el(假设您遵循MVVM模式,按照属性名称),则侦听位置更改的事件处理程序也可以为当前
blah
变量的ViewModel版本引发PropertyChanged事件。您似乎没有任何代码在坐标更改时更新视图?我在文档中看到的唯一内容是使用状态/位置更改事件和在本例中,更新TextBlock控件。我想在应用程序加载时更新当前位置,以便获得一般区域中的内容列表。除此之外还有代码(blah是用于测试的变量),但blah返回为“NaN;NaN”我的意思是,你的
PositionChanged
方法会更新你的
coord
,但是你从来没有读过它,除非它有机会被设置,如果你的coord在你的ViewModel上,你的代码也不会使用任何数据绑定来自动更新(假设您遵循MVVM模式,使用属性名称),则侦听位置更改的事件处理程序也可能引发ViewModel当前版本的
blah
变量的PropertyChanged事件。您是正确的。一旦我删除blah代码以重新生成项目列表,它似乎工作正常。不确定原因,但至少是这样。若您不介意,c用你的第二条评论创建一个答案,我将标记为答案。谢谢。