#xamarin #xamarin.forms
#xamarin #xamarin.forms
Вопрос:
Я получаю исключение NullException при отображении карты, но не могу определить; Я пытался изменить название карт, местоположение и т.д., Но безуспешно. Возможно, вы сможете определить, в чем моя ошибка, пожалуйста, помогите мне!
public partial class LocationPage : ContentPage
{
public Clinica _clinica;
public LocationPage(Clinica clinica)
{
InitializeComponent();
Clinica = clinica;
SetupMap();
}
public Clinica Clinica
{
get
{
return _clinica;
}
set
{
_clinica = value;
}
}
protected override void OnAppearing()
{
base.OnAppearing();
// Typically, is preferable to call into the viewmodel for OnAppearing() logic to be performed,
// but we're not doing that in this case because we need to interact with the Xamarin.Forms.Map property on this Page.
// In the future, the Map type and it's properties may get more binding support, so that the map setup can be omitted from code-behind.
SetupMap();
}
void SetupMap()
{
if (Device.OS != TargetPlatform.WinPhone amp;amp; Device.OS != TargetPlatform.Windows)
{
var pin = new Pin()
{
Type = PinType.Place,
Position = new Position(Clinica.Latitude, Clinica.Longitude),
Label = Clinica.Nome
};
clinicaMap.Pins.Clear();
clinicaMap.Pins.Add(pin);
clinicaMap.MoveToRegion(MapSpan.FromCenterAndRadius(pin.Position, Distance.FromMiles(10)));
}
}
}
}
LocationPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
x:Class="CartaoDeTodos.View.LocationPage">
<StackLayout>
<maps:Map x:Name="clinicaMap"
VerticalOptions="FillAndExpand"/>
</StackLayout>
</ContentPage>
Комментарии:
1. это может быть не связано, но вы вызываете SetupMaps() дважды. Вы пробовали «Прервать» при появлении диалогового окна исключения и проверке трассировки стека?
2. Два подозреваемых:
clinica
параметр конструктора илиclinicaMap.Pins
. Да, пожалуйста, используйте точки останова, это должно быть легко выяснить.3. Я отредактировал сообщение для лучшего понимания. Ошибка возникает, когда я оставляю код карты в файле xaml.
4. Публикуйте текст исключения, а не скриншот. Вы можете получить полный текст с помощью
Exception.ToString()
. Это включает в себя стек вызовов, который покажет, где на самом деле произошло исключение. Кстати, этот снимок экрана появляется, когда во внешних библиотеках создаются исключения. Исключения, создаваемые из вашего собственного кода, включают в себя детали5. Мне пришлось поставить другую печать, потому что я не могу поймать исключение при попытке поймать. Ошибка возникает сразу после этой строки и больше не имеет никакого кода train depot