Hi,
I'm trying to use the DataTemplateSelector on my Map Marker Tooltip and the OnSelectTemplate method is not called.
I have the following error message: System.InvalidOperationException: 'LoadTemplate should not be null'
XAML:
<ContentPage.Resources>
<ResourceDictionary>
<DataTemplate x:Key="SrcTooltipTemplate">
...
</DataTemplate>
<DataTemplate x:Key="DstTooltipTemplate">
...
</DataTemplate>
<local:TooltipDataTemplateSelector
x:Key="MarkerTooltipDataTemplateSelector"
SourceTooltipTemplate="{StaticResource SrcTooltipTemplate}"
DestinationTooltipTemplate="{StaticResource DstTooltipTemplate}" />
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
<maps:SfMaps
IsVisible="True"
ZoomLevel="{Binding MapZoom}">
<maps:SfMaps.Layers>
<maps:ImageryLayer
BingMapKey="xxxxxxxxxxxxx"
BingMapStyle="Road"
GeoCoordinateChanged="Map_GeoCoordinateChanged"
GeoCoordinates="{Binding GeoCoordinates}"
LayerType="Bing"
MarkerTemplate="{StaticResource markerTemplate}"
Markers="{Binding MyMarkers}">
<maps:ImageryLayer.MarkerSettings>
<maps:MapMarkerSetting>
<maps:MapMarkerSetting.TooltipSettings>
<maps:TooltipSetting
PointerLength="16"
ShowTooltip="True"
TooltipTemplate="{StaticResource MarkerTooltipDataTemplateSelector}"
ValuePath="Label"
Duration="10000" />
</maps:MapMarkerSetting.TooltipSettings>
</maps:MapMarkerSetting>
</maps:ImageryLayer.MarkerSettings>
</maps:ImageryLayer>
</maps:SfMaps.Layers>
</maps:SfMaps>
</ContentPage.Content>
Template Selector CLASS:
public class TooltipDataTemplateSelector : DataTemplateSelector
{
public DataTemplate SourceTooltipTemplate { get; set; }
public DataTemplate DestinationTooltipTemplate { get; set; }
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
var marker = item as CustomMarker;
switch (marker.MarkerType)
{
case Shared.MapPositionEnum.Start:
return SourceTooltipTemplate;
case Shared.MapPositionEnum.Destination:
return DestinationTooltipTemplate;
}
}
}