0

だから私はここでいくつかの助けが必要です-それを行う方法に関するいくつかのチュートリアル。

アプリのロケーションページを作成しようとしています

プッシュピンのリストのために2つのxmlノードを1つにバインドする方法も知っておく必要があります。その後、ユーザーがそれらをクリックすると、値が別のページに移動します。

XMLとマップにデータを入力できます。以下は私が現在停止する方法です。

    void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            if (e.Result != null)
            {
                XDocument doc = XDocument.Parse(e.Result);
                XNamespace ns = "http://schemas.datacontract.org/2004/07/BusExpress.ClassLibrary";
                var locations = (from n in doc.Descendants(ns + "ArrayOfStop")
                                  select new RootContainer
                                  {

                                      Location = (from s in n.Elements(ns + "Stop")
                                               select new Location
                                               {
                                                 latitude = s.Element(ns + "lat").Value,
                                                 longitude = s.Element(ns + "long").Value,


                                               }).ToList()
                                  }).Single();


              //  listBusStops.ItemsSource = locations.Location;


                // Do something with the list of Route Names in routeNames 
            }
        }
    } 

これを1つのxmlフィードから複数のプッシュピンに変換するにはどうすればよいですか。

4

1 に答える 1

1

更新: コードを追加し、動作するデモと完全なソースへのリンクを追加しました。

注:ブログ経由でソースを使用してデモを行います

データ テンプレートを作成して、押しピンをマップに表示する方法を表すことができます。

そのような:

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="PinItemTemplate">
        <my:Pushpin Location="{Binding Location}" 
                    MouseLeftButtonUp="Pushpin_MouseLeftButtonUp_1"
                    Content="{Binding Id}">
        </my:Pushpin>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

次に、データ テンプレートを参照するこのコレクションに bing マップをバインドできます。

        <my:Map Margin="10,10,0,0"
                Name="map1"
                Center="39.95245, -75.163526"
                ZoomLevel="11"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch">
            <my:MapItemsControl x:Name="MapPins"
            ItemsSource="{Binding Pins}"
            ItemTemplate="{StaticResource PinItemTemplate}"
            />
        </my:Map>

その後、このビュー モデルを通常どおりバインドできます。

        //Load map pins
        MapViewModel view = new MapViewModel();
        view.Load();
        this.DataContext = view;

クリックされたときにピンを処理するには、次のことができる必要があります。

private void Pushpin_MouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
{
Pushpin pin = (Pushpin)sender;
MessageBox.Show(pin.Content.ToString());
}
于 2012-06-12T01:42:59.000 に答える