Windows Phone 7 - Bing Maps MVVM Инициализация Pushpin - PullRequest
0 голосов
/ 15 февраля 2011

Есть ли у кого-нибудь хорошее руководство по инициализации кнопки в элементе управления Bing Maps? Мой текущий сценарий работает, но не на 100% правильно ... позвольте мне объяснить детали:

Когда я открываю страницу с элементом управления Bing Maps, я хочу, чтобы пользователь мог нажать маленькую кнопку, которая покажет его текущее местоположение. Чтобы показать текущее местоположение, я использую канцелярскую кнопку. Я уже добавляю канцелярскую кнопку на элемент управления в файл XAML следующим образом:

<map:Pushpin> x:Name="currentLocation" Location="{Binding CurrentLocation}" Content="Me" ManipulationStarted="CurrentLocationPin_ManipulationStarted" </map:Pushpin>

Теперь с этим сценарием возникли некоторые проблемы! Во-первых, канцелярская кнопка всегда видна! Итак, как мне это сделать? (Я знаю, что могу связать видимость также со свойством и использовать конвертер bool в видимость, но разве это лучший способ сделать это?) Во-вторых, теперь я не инициализирую Location в viewmodel ... но по семантическим причинам я хотел бы инициализировать значение по умолчанию Geocoordinate.Unkown (таким образом я могу использовать это для выполнения проверок, когда пользователь пытается выполнить некоторые манипуляции до установки текущего местоположения). Но когда я инициализирую кнопку при запуске, я получаю следующую ошибку: «UIElement.Arrange (finalRect) не может быть вызван со значениями Infinite или NaN в finalRect.». Итак, мой вопрос еще раз: что является хорошим руководством для настройки кнопки текущего местоположения? (но учтите, что пользователи должны нажимать маленькую кнопку на панели приложения, прежде чем будет установлено текущее местоположение)

1 Ответ

0 голосов
/ 16 февраля 2011

Проблема инициализации связана с видимостью Pushpin.Если начальная видимость Pushpin равна Collapsed, то она не будет участвовать в проходе аранжировки, поэтому вы не получите ошибку.

Если вы используете модель представления дляесли вернуться к этому представлению, то я не вижу проблемы с отображением свойства из модели представления, которое определяет, должен ли Pushpin быть видимым или нет.Да, вы могли бы использовать преобразователь логического значения в видимость, но вы могли бы сэкономить некоторую обработку, фактически выставив свойство Visibility (это подход, который я использовал).

Если вы используете команду для запускапоказ Pushpin от нажатия кнопки ( Silverlight Windows Phone Toolkit имеет поведение, позволяющее подключать кнопки панели приложения к командам).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...