WP7模拟器中的测试位置



所以我正在使用本指南,但在测试以确定它是否有效时运气不佳。该代码的唯一变化是,我没有更改 TextBlock,而是设置在函数外部声明的静态 GeoCoordinate 对象。

public static void PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        coord = e.Position.Location;
    }

好吧,我将状态更改为而不是显示在文本框中,以显示带有"确定"按钮的消息框,并删除了按钮事件。

在主页渲染中,我有:

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();
但是,

如果我不初始化坐标,它会出错(可以理解),但是如果我这样做=新的GeoCoordinate();它会为所有数字项目返回NaN。我在从未命中的事件处理程序中设置了断点(虽然预期的行为?

在模拟器中,我使用了>>的东西,将其设置为实时并选择了几个位置,将切换位置的时间设置为 10 秒,并在运行调试时播放它。我是否正确地调试/运行模拟器的位置部分?

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

您的 PositionChanged 方法会更新您的坐标,但除非在有机会设置之前,否则您从未读取它,您的代码也不会使用任何数据绑定来自动更新 - 如果您的坐标位于 ViewModel 上(假设您遵循 MVVM 模式,按属性名称),则侦听位置更改的事件处理程序也可以为 ViewModel 的当前blah变量的版本引发 PropertyChanged 事件

最新更新