1

WinRTでアプリを開発していて、あるクラスで設定されているプロパティ値を別のクラスに渡す必要がありましたが、取得できません。以下のコードで私の問題を説明します。これをシミュレーターでテストし、マニフェストでの位置特定機能を追加したことに注意してください。シミュレーターで位置を設定しました。

MainPage.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();
}

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;
    }
}

出力「0,0」を取得しています

4

3 に答える 3

2

FindLatLongは非同期で実行されるため、Lat/Lonプロパティはコンストラクターの直後に設定されません

于 2012-09-26T10:03:05.907 に答える
0

現在地を表示する別の方法は、INotifyPropertyChangedインターフェイスを実装し、テキストボックスをクラスのプロパティにバインドすることです。

于 2012-09-27T05:31:15.247 に答える
0

ついにMSDNフォーラムから私の答えを得ました。

于 2012-09-26T10:37:42.010 に答える