Bing MapControl WP7 XAML数据绑定中心

时间:2011-08-10 06:53:59

标签: xaml data-binding windows-phone-7 bing-maps

我声明了以下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>

绑定工作正常 - 除了地图不会保持居中(最初它使用Center属性上的绑定正确居中)。该应用程序允许用户浏览具有不同GeoCoordinates的一系列记录。当发生这种情况时,绑定的Pushpin会相应地移动,但最终会从地图移开,因为地图不会重新居中。如何使用数据绑定让地图重新定位?

2 个答案:

答案 0 :(得分:5)

我找到了第二个更好的分辨率,可以实现数据绑定。我将Center的绑定模式设置为TwoWay:

Center="{Binding MapCenter, Mode=TwoWay}"

这意味着我无法直接绑定到我映射的记录上的GeoCoordinate值(因为如果我通过平移移动地图中心,我不希望更新该值)。相反,我必须在我的视图模型中有一个单独的属性来绑定,当用户滚动数据时,我会使用所选记录中所需的GeoCoordinate值进行更新。

奇怪的是,Center属性需要双向绑定,而图钉在没有两个绑定的情况下工作正常。

答案 1 :(得分:0)

在这个阶段,我发现的唯一解决方案是每次映射点改变时在代码中设置地图视图,如下所示:

map.SetView(ViewModelLocator.AppStateStatic.MapCenter, 15);

我希望它可以使用数据绑定。