2011-02-15 76 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有啓用將應用程序欄按鈕連接到命令的行爲)。