Событие .net Maui Maps Pin.MarkerClick не запускаетсяC#

Место общения программистов C#
Ответить
Anonymous
 Событие .net Maui Maps Pin.MarkerClick не запускается

Сообщение Anonymous »

Моя ViewModel создала список контактов, которые необходимо сопоставить. В код OnAppearing моей страницы я добавляю код для события MarkerClicked следующим образом:

Код: Выделить всё

protected override void OnAppearing()
{
try
{
base.OnAppearing();

// Add the pin click events
foreach (var pin in _MapPlace.PinsToMap)
{
pin.MarkerClicked += async (s, args) =>
{
args.HideInfoWindow = true;
string pinName = ((Pin)s).Label;
await DisplayAlert("Pin Clicked", $"{pinName} was clicked.", "Ok");
};
}

BindingContext = _MapPlace;
_MapPlace.MoveMap();
MapPlaceList.PlaceList = _MapPlace.MasterPlaces;

}
catch (Exception ex)
{
App.ProcessException(ex);
}

_MasterPage.IsBusy = false;
}
Когда я запускаю приложение (на Android) и нажимаю на булавку, отображаются обычные сведения о пин-коде (т. е. заголовок и адреса), но код MarkerClick никогда не выполняется.< /p>
Вот код, который заполняет список контактов в моей виртуальной машине.

Код: Выделить всё

   private async Task UpdatePinList()
{
try
{
//Linq Query to get the places to map
var workPinList = (from p in MasterPlaces
where p.Selected == true
select new Pin()
{
Label = p.Title,
Address = p.Address,
Type = PinType.Place,
Location = new Location(p.Latitude, p.Longitude)
}).ToList();

//Add the current location to ensure the area is centered around it
if (IncludeCurrentLocation)
{
var currentLocation = await GeoLocationHelper.GetLocation();
workPinList.Add(new Pin() { Location = currentLocation });
}

//Build the mapspan.
DisplayArea = GetMapSpan(workPinList);

//Remove the pin as it will be shown natively via the map
if (IncludeCurrentLocation)
{
workPinList.RemoveAt(workPinList.Count - 1);
}

PinsToMap = new ObservableCollection
(workPinList);

if (PinsToMap.Count == 1)
{
SubTitle = PinsToMap[0].Label;
}
else
{
SubTitle= string.Concat(AppResources.NumberResultsCaption, " ", PinsToMap.Count.ToString());
}

if (WorkingMap != null)
{
//Now create and position the map
MoveMap();
}
}
catch (Exception ex)
{
App.ProcessException(ex);
}
}
Я также позаботился о том, чтобы список заполнялся до запуска кода OnAppearing, и переместил добавление события MarkerClick до привязки списка к карте.
Есть идеи относительно того, почему мне кажется, что код события MarkerClick не срабатывает?

Подробнее здесь: https://stackoverflow.com/questions/773 ... not-firing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»