我正在尝试向我的应用程序添加地图。地图需要显示自定义引脚(来自png图像)它们中的每一个都需要以某种方式包含一个ID,我将使用该ID从数据库中检索数据。
因此,基本上,当用户点击它们时,在相关事件上,我需要能够检索该ID…
我一直在尝试两种选择:
第一个是微软网站上描述的:http://msdn.microsoft.com/en-us/windowsphonetrainingcourse_usingbingmapslab_topic3.aspx
这可以创建自定义引脚。。。。但是我找不到一种方法来存储它们中的任何数据,我以后可以检索这些数据。因为当我创建一个pin时,我在PushpinModel上工作,但当点击事件发生在其中一个pin上时,发送者不再是PushpinModel,而只是一个Pushpin。
第二个是在许多网站和教程中描述的,基本上建议创建一个具有透明背景和图片作为内容或前景的Pushpin。(例如。http://www.geekchamp.com/articles/windows-phone-drawing-custom-pushpins-on-the-map-control-what-options-do-we-have)
有了这个,我肯定可以存储ID,并在点击图钉时在发件人var上检索。。。。。但图片在地图上完全站错了位置,因为它实际上并不是从定位点开始的,而是只出现在透明图钉的"内容"矩形上。
因此,概括一下:第一个选项:自定义的pin显示在正确的位置,但我无法检索ID。第二个选项:我可以检索ID,但定制的引脚没有显示在正确的位置。
你知道如何解决这两个问题中的一个吗?或你还有第三种选择吗?
您可以从图钉检索PushpinModel。如果您遵循了链接的教程,则已通过将PushpinModel的列表绑定到MapItemsControl来创建图钉。在这种情况下,PushpinModel存储在图钉的DataContext
属性中。要从图钉的点击事件中检索它,请首先转换sender
参数,然后转换DataContext
属性:
var pushpin = (Pushpin)sender;
var model = (PushpinModel)pushpin.DataContext;