0

我正在尝试将地图添加到我的应用程序。地图需要显示自定义图钉(来自 png 图像),并且每个图钉都需要以某种方式包含一个 ID,我将使用该 ID 从数据库中检索数据。

所以基本上当用户点击它们时,在相关事件上,我需要能够检索该 ID ...

我一直在尝试两种选择:


第一个是微软网站上描述的:http: //msdn.microsoft.com/en-us/windowsphonetrainingcourse_usingbingmapslab_topic3.aspx

这可以创建定制的别针……但我找不到一种方法来存储我以后可以检索的任何数据。因为当我创建一个图钉时,我在一个 PushpinModel 上工作,但是当点击事件发生在其中一个上时,发送者不再是 PushpinModel,而只是一个 Pushpin。


第二个是在许多网站和教程上描述的,基本上建议创建一个具有透明背景和图片作为内容或前景的图钉。(例如http://www.geekchamp.com/articles/windows-phone-drawing-custom-pushpins-on-the-map-control-what-options-do-we-have

有了那个,我肯定可以存储 ID 并在点击图钉时在 sender var 上检索它.....但是图片完全位于地图上的错误位置,因为它实际上并不是从位置点开始,而是仅出现在透明图钉的“内容”矩形上。

所以,回顾一下:第一个选项:自定义图钉显示在正确的位置,但我无法检索 ID。第二个选项:我可以检索 ID,但自定义的 pin 没有显示在正确的位置。

关于如何解决这两个问题之一的任何想法?或者......你有任何第三种选择吗?

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 回答