0

アプリに地図を追加しようとしています。マップには、カスタマイズされたピン (png 画像から) を表示する必要があり、データベースからデータを取得するために使用する ID を含める必要があります。

基本的に、ユーザーがそれらをタップすると、関連するイベントで、その ID を取得できる必要があります...

私は2つのオプションを試してきました:


最初のものは、Microsoft の Web サイトで説明されているものです: http://msdn.microsoft.com/en-us/windowsphonetrainingcourse_usingbingmapslab_topic3.aspx

それはカスタマイズされたピンを作成することで機能します....しかし、後で取得できるデータを保存する方法が見つかりません。ピンを作成するときはPushpinModelで作業しますが、そのうちの1つでクリックイベントが発生すると、送信者はPushpinModelではなく、単なるPushpinになります。


2 つ目は、多くの Web サイトやチュートリアルで説明されているもので、基本的に、背景が透明で、画像がコンテンツまたは前景の画鋲を作成することを提案しています。(例: http://www.geekchamp.com/articles/windows-phone-drawing-custom-pushpins-on-the-map-control-what-options-do-we-have )

それを使用すると、IDを確実に保存し、プッシュピンがタップされたときに送信者変数に取得できます.....しかし、実際には場所から開始するわけではないため、画像は完全に地図上の間違った位置に立っていますが、透明画鋲の「コンテンツ」長方形にのみ表示されます。

要約すると、最初のオプション: カスタマイズされたピンが適切な場所に表示されますが、ID を取得できません。2 番目のオプション: ID を取得できますが、カスタマイズされた PIN が正しい場所に表示されません。

2つの問題のうちの1つを解決する方法について何か考えはありますか? または... 3番目のオプションはありますか?

4

1 に答える 1

1

プッシュピンから PushpinModel を取得できます。リンクしたチュートリアルに従っている場合は、PushpinModel のリストを MapItemsControl にバインドして画鋲を作成しています。その場合、PushpinModel はDataContext画鋲のプロパティに格納されます。画鋲のクリック イベントから取得するには、最初にsenderパラメーターをキャストし、次にDataContextプロパティをキャストします。

var pushpin = (Pushpin)sender;
var model = (PushpinModel)pushpin.DataContext;
于 2013-07-27T10:01:19.527 に答える