[英]BingMapControl WP7 XAML Databinding Center
我聲明了以下 XAML :
<controls:PivotItem Header="map">
<my:Map x:Name="map"
CredentialsProvider="Hidden"
Mode="Road"
Center="{Binding AppState.MapCenter}"
ZoomLevel="15">
<my:Pushpin Location="{Binding AppState.MapCenter}" />
</my:Map>
</controls:PivotItem>
綁定工作正常 - 除了 map 沒有保持居中(最初它使用 Center 屬性上的綁定正確居中)。 該應用程序允許用戶在一系列具有不同地理坐標的記錄中移動。 發生這種情況時,綁定的圖釘會適當移動,但最終它會從 map 移開,因為 map 不會自行重新居中。 如何讓 map 使用數據綁定重新居中?
我找到了第二個更好的解決方案,可以實現數據綁定。 我將中心的綁定模式設置為雙向:
Center="{Binding MapCenter, Mode=TwoWay}"
這意味着我無法直接綁定到我正在映射的記錄上的 GeoCoordinate 值(因為如果我通過平移移動 map 中心,我不希望更新該值)。 相反,我必須在我的視圖 model 中有一個單獨的屬性來綁定,當用戶滾動數據時,我會使用所選記錄中所需的 GeoCoordinate 值保持更新。
奇怪的是,Center 屬性需要兩種方式綁定,而圖釘在沒有兩種綁定的情況下可以正常工作。
在這個階段,我發現的唯一解決方案是在每次映射點發生如下變化時在代碼中設置 map 視圖:
map.SetView(ViewModelLocator.AppStateStatic.MapCenter, 15);
我本來希望它與數據綁定一起工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.