Центр привязки данных BingMapControl WP7 XAML - PullRequest
2 голосов
/ 10 августа 2011

У меня объявлен следующий 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).Приложение позволяет пользователю перемещаться по серии записей с разными гео-координатами.Когда это происходит, связанная канцелярская кнопка перемещается соответствующим образом, однако в конечном итоге она удаляется с карты, потому что карта не перецентрируется.Как я могу заставить карту заново центрироваться, используя привязку данных?

Ответы [ 2 ]

5 голосов
/ 11 августа 2011

Я нашел второе и лучшее разрешение, которое позволяет привязывать данные.Я установил режим привязки для Center на TwoWay:

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

Это означало, что я не мог привязываться напрямую к значению GeoCoordinate в записи, которую я отображал (потому что я не хотел, чтобы это значение обновлялось, еслиЯ сдвинул центр карты с помощью панорамирования).Вместо этого мне нужно было иметь отдельное свойство в моей модели представления для привязки, которое я постоянно обновлял с требуемым значением GeoCoordinate из выбранной записи, когда пользователь просматривал данные.

Странно, что для свойства Center требуется дваспособ привязки, тогда как канцелярская кнопка работала нормально, без двух привязок.

0 голосов
/ 11 августа 2011

На данном этапе единственное разрешение, которое я нашел, - это устанавливать вид карты в коде каждый раз, когда отображаемая точка изменяется следующим образом:

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

Мне бы хотелось, чтобы он работал с привязкой данных.

...