绑定到地图缩放级别会杀死其他元素的绑定

时间:2014-07-30 00:02:29

标签: windows-phone winrt-xaml mvvm-light windows-phone-8.1

好的,奇怪的问题在这里。我有一张地图,我绑定到中心和缩放级别。但是,绑定到ZoomLevel会产生奇怪的后果。

  1. 如果我在Center绑定之前移动ZoomLevel绑定,它会终止Center绑定。在视图模型中设置中心无效,并且移动地图不会更新Center属性。

  2. 如果我保持如图所示,Center和ZoomLevel正确绑定,但MapItemsControl则没有。当我搜索时,搜索结果的图钉不会显示在地图上。

  3. 如果我完全删除ZoomLevel绑定,一切正常 - 中心绑定正确,并且图钉显示出来。但是,我现在没有对缩放级别进行编程控制。

  4. 这让我完全不知所措。我已经尝试将其更改为OneWay(我不需要知道视图模型中的缩放级别,只需设置它),但是在视图模型中设置缩放级别不再缩放地图,这也很奇怪。我可以将中心更改为单向,并且在视图模型中更改后仍然会重新定位地图。

    <map:MapControl Grid.Row="0"
        Center="{Binding Path=Center, Mode=TwoWay}"
        ZoomLevel="{Binding Path=ZoomLevel, Mode=TwoWay}"
        MapServiceToken="{StaticResource ResourceKey=MapServiceToken}">
        <map:MapItemsControl ItemsSource="{Binding Path=SearchResults}">
            <map:MapItemsControl.ItemTemplate>
                <DataTemplate>
                    <Button Background="Red" Content="{Binding Path=Name}" map:MapControl.Location="{Binding Path=Point}"></Button>
                </DataTemplate>
            </map:MapItemsControl.ItemTemplate>
        </map:MapItemsControl>
    </map:MapControl>
    

    编辑:对于那些感兴趣的人,在视图模型的构造函数中将ZoomLevel初始化为非零值似乎可以解决这个问题。

0 个答案:

没有答案