为什么我能';在c#/xaml metro应用程序中,在一个类中设置为另一个类时,是否无法获取属性值?

为什么我能';在c#/xaml metro应用程序中,在一个类中设置为另一个类时,是否无法获取属性值?,c#,oop,properties,microsoft-metro,windows-runtime,C#,Oop,Properties,Microsoft Metro,Windows Runtime,我在WinRT中开发一个应用程序,我需要将一个类中设置的属性值传递给另一个类,但我无法获得它们。我下面的代码将向您解释我的问题。请注意,我已经在模拟器中对此进行了测试,并添加了在清单中定位的功能。我有一个模拟器 MainPage.xaml <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <TextBlock x:Name="MyTextBlock"/> </G

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

MainPage.xaml

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
     <TextBlock x:Name="MyTextBlock"/>
</Grid>
MyClass.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;
    }
}

我正在获取异步执行的FindLatLong输出“0,0”

,因此,在构造函数

最终从MSDN论坛获得my之后,不会直接设置Lat/Lon属性。

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

您希望得到不同的结果吗?是,因为我已经在模拟器中手动设置了坐标,所以同步执行它,或者添加一个在设置坐标后调用的事件
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;
    }
}