Отображение нескольких кнопок на Bing Maps WPF

В настоящее время, когда я загружаю свою программу, Bing Maps загружает на карту только первую канцелярскую кнопку, например, у меня есть 4 канцелярских кнопки, которые должны отображаться при загрузке приложения, какой дополнительный код я бы добавил, чтобы он завершил все четыре.

В дополнение у меня есть пара вопросов, если вы не против ответить

Нужно ли использовать цикл для каждого местоположения?

Нужно ли давать каждому индивидуальное имя? (Штырь)

Могу ли я связать базу данных доступа вместо копирования местоположений?

Можно ли скрыть или удалить канцелярские кнопки при нажатии кнопки?

 Dim Pin = New Microsoft.Maps.MapControl.WPF.Pushpin()
    UserControl11.BingMap.Children.Add(Pin)

    Pin.Location = (New Location(55.852663, -2.3889276))
    Pin.Location = (New Location(55.956023, -3.1607265))
    Pin.Location = (New Location(54.840279, -3.2886766))
    Pin.Location = (New Location(52.819511, -1.8851815))

person Gaudreau95    schedule 21.12.2015    source источник
comment
Вы всего четыре раза устанавливаете местоположение одной канцелярской кнопки. Создайте четыре экземпляра Pushpins вместо одного и добавьте их все на карту.   -  person Clemens    schedule 22.12.2015
comment
Итак, я должен просто скопировать две верхние строки кода с разными именами 4 раза или есть короткий метод?   -  person Gaudreau95    schedule 22.12.2015
comment
Попробуйте что-нибудь. Это способ научиться программированию.   -  person Clemens    schedule 22.12.2015
comment
Я имею в виду, что я понимаю просто дать каждой канцелярской кнопке имя, например. pin pin2 и т. д. ... но это потребует от меня двух строк кода для каждой, наверняка есть более простой способ содержать несколько имен или самоназначение вместо двух Dim Pin = New Microsoft.Maps.MapControl.WPF.Pushpin () UserControl11.BingMap.Children.Add(Pin) для каждого?   -  person Gaudreau95    schedule 22.12.2015
comment
Возможно, вы захотите использовать MapItemsControl с помощью Pushpin в его ItemTemplate и привяжите его свойство ItemsSource к коллекции объектов модели представления со свойством Location. Путь WPF.   -  person Clemens    schedule 22.12.2015


Ответы (1)


Если вы хотите создать только эти 4 контакта, вы можете использовать следующий код:

Dim Pin = New Microsoft.Maps.MapControl.WPF.Pushpin()
Pin.Location = (New Location(55.852663, -2.3889276))
UserControl11.BingMap.Children.Add(Pin)

Dim Pin2 = New Microsoft.Maps.MapControl.WPF.Pushpin()
Pin2.Location = (New Location(55.956023, -3.1607265))
UserControl11.BingMap.Children.Add(Pin2)

Dim Pin3 = New Microsoft.Maps.MapControl.WPF.Pushpin()
Pin3.Location = (New Location(54.840279, -3.2886766))
UserControl11.BingMap.Children.Add(Pin3)

Dim Pin4 = New Microsoft.Maps.MapControl.WPF.Pushpin()
Pin4.Location = (New Location(52.819511, -1.8851815))
UserControl11.BingMap.Children.Add(Pin4)

В качестве альтернативы, если ваши данные о местоположении меняются или у вас есть массив/список информации о местоположении, который вы можете просмотреть, создайте кнопки и добавьте их на карту следующим образом:

Dim myLocations(4) As Location
myLocations(0) = New Location(55.852663, -2.3889276)
myLocations(1) = New Location(55.956023, -3.1607265) 
myLocations(2) = New Location(54.840279, -3.2886766) 
myLocations(3) = New Location(52.819511, -1.8851815)

For index = 0 to myLocations.Length - 1
    Dim Pin = New Microsoft.Maps.MapControl.WPF.Pushpin()
    Pin.Location = myLocations(index)
    UserControl11.BingMap.Children.Add(Pin)
Next
person rbrundritt    schedule 22.12.2015
comment
Это прекрасно работает с данными, которые я использую, но после добавления кажется, что в центре моей карты есть одна случайная канцелярская кнопка, у которой нет фиксированной точки? - person Gaudreau95; 23.12.2015
comment
Проверьте остальную часть кода. Вы, вероятно, добавляете еще одну канцелярскую кнопку где-то. Возможно, в XAML? - person rbrundritt; 30.12.2015
comment
Единственное другое место, где я добавил одну кнопку, было в коде XAML, который я удалил, чтобы увидеть, сохраняется ли проблема, что, к сожалению, так и есть. Это происходит только при добавлении вашего фрагмента выше, за что я, кстати, очень благодарен. - person Gaudreau95; 31.12.2015
comment
Скорее всего это цикл for. Я редко использую ВБ. Я подозреваю, что верхняя граница идет к myLocations (4), которого не существует, и поэтому отображает канцелярскую кнопку в (0,0). Я обновил пример кода. - person rbrundritt; 31.12.2015
comment
Спасибо, после прочтения вашего комментария, мне нужно только изменить myLocations (3) вместо 4, как вы сказали, это дает дополнительную точку без фиксированной точки. - person Gaudreau95; 31.12.2015
comment
Спасибо, что помогли мне до сих пор, но знаете ли вы, какую дополнительную информацию я должен добавить в каждую строку для простой информационной страницы при нажатии? - person Gaudreau95; 31.12.2015