为什么我无法获取属性值,在一个类中设置为c#/xaml地铁应用程序中的另一个类?



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

MainPage.xaml

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

主页.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"

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

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

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

最新更新