2011-02-15 75 views
0

有没有人有关于如何初始化Bing Maps控件上的图钉的良好指导方针? 我目前的方案有效,但不是100%正确...让我解释一下详细信息:Windows Phone 7 - Bing地图MVVM图钉初始化

当我用Bing Maps控件打开页面时,我希望用户能够按下一个小按钮这将显示他的当前位置。 要显示当前位置,我正在使用图钉。我已经在XAML文件中的控件上添加了图钉,如下所示:

<map:Pushpin> x:Name="currentLocation" Location="{Binding CurrentLocation}" Content="Me" ManipulationStarted="CurrentLocationPin_ManipulationStarted" </map:Pushpin> 

现在,在这种情况下出现了一些问题! 一,图钉总是可见的!那么我该怎么做呢? (我知道我可以将可见性绑定到一个属性,并使用布尔到可见性转换器,但是这是做到这一点的最佳方式吗?) 其次,现在我不初始化viewmodel中的位置...但是语义原因我很想将默认值初始化为Geocoordinate.Unkown(这样我可以用它来检查用户在设置当前位置之前是否尝试进行一些操作)。但是当我在启动时初始化图钉时,出现以下错误:“无法在finalRect中使用无限或NaN值调用UIElement.Arrange(finalRect)。”所以我的问题再次:)建立一个当前位置图钉是一个很好的指导方针? (但要注意用户必须在设置当前位置之前按下小应用程序栏按钮)

+0

这真的是你的XAML吗?它看起来不正确。 – 2011-02-15 23:12:42

+0

XAML是:<` – Depechie 2011-02-21 08:30:35

回答

0

初始化问题是由于Pushpin的可见性。如果Pushpin的初始可见性为Collapsed,则它不会参与安排通行证,因此您将不会收到错误。

如果您使用视图模型来支持此视图,那么我看不到从视图模型中暴露属性的问题,该属性确定Pushpin是否应该是可见的。是的,你可以使用布尔到可见性转换器,但你可以通过实际暴露Visibility属性(这是我使用的方法)来节省一些处理。

如果您正在使用命令从按钮按钮启动显示PushpinSilverlight Windows Phone Toolkit有启用将应用程序栏按钮连接到命令的行为)。