我正在 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 接口并将文本框绑定到类的属性。