1

我在 WinRT 中开发一个应用程序,我需要将在一个类中设置的属性值传递给另一个类,但我无法获取它们。我下面的代码将向您解释我的问题。请注意,我已经在模拟器中对此进行了测试,并在清单中添加了定位功能。我已经在模拟器中设置了位置。

主页.xaml

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
     <TextBlock x:Name="MyTextBlock"/>
</Grid>

MainPage.xaml.cs

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    MyClass objMyClass = new MyClass();
    MyTextBlock.Text = objMyClass.Lat.ToString() + ", " + objMyClass.Long.ToString();
}

我的类.cs

public class MyClass
{
    public double Lat { get; set; }
    public double Long { get; set; }

    public MyClass()
    {
        FindLatLong();
    }

    public async void FindLatLong()
    {
        Geolocator geolocator = new Geolocator();
        var pos = await geolocator.GetGeopositionAsync();
        Lat = pos.Coordinate.Latitude;
        Long = pos.Coordinate.Longitude;
    }
}

我得到输出“0,0”

4

3 回答 3

2

FindLatLong 是异步执行的,因此不会在构造函数之后直接设置 Lat/Lon 属性

于 2012-09-26T10:03:05.907 回答
0

终于从 MSDN 论坛得到了我的答案。

于 2012-09-26T10:37:42.010 回答
0

显示您的位置的另一种方法是实现INotifyPropertyChanged接口并将您的文本框绑定到类的属性。

于 2012-09-27T05:31:15.247 回答