Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/Controls/Maps/src/Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ public partial class Map : View
public static readonly BindableProperty ItemTemplateSelectorProperty = BindableProperty.Create(nameof(ItemTemplateSelector), typeof(DataTemplateSelector), typeof(Map), default(DataTemplateSelector),
propertyChanged: (b, o, n) => ((Map)b).OnItemTemplateSelectorPropertyChanged());

/// <summary>Bindable property for <see cref="Region"/>.</summary>
public static readonly BindableProperty RegionProperty = BindableProperty.Create(nameof(Region), typeof(MapSpan), typeof(Map), null,
propertyChanged: (b, o, n) => ((Map)b).OnRegionPropertyChanged((MapSpan?)n));

readonly ObservableCollection<Pin> _pins = new();
readonly ObservableCollection<MapElement> _mapElements = new();
MapSpan? _visibleRegion;
Expand Down Expand Up @@ -159,6 +163,16 @@ public DataTemplateSelector ItemTemplateSelector
set { SetValue(ItemTemplateSelectorProperty, value); }
}

/// <summary>
/// Gets or sets the region displayed by the map. Setting this property moves the map to the specified region.
/// This is a bindable property.
/// </summary>
public MapSpan? Region
{
get { return (MapSpan?)GetValue(RegionProperty); }
set { SetValue(RegionProperty, value); }
Comment on lines +166 to +173
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Region is described as “the region displayed by the map”, but it is only used as an input to call MoveToRegion() when set. It is not kept in sync with user panning/zooming (that state is exposed via VisibleRegion). This makes the public API contract misleading—please clarify the XML docs (or consider syncing Region from VisibleRegion without re-invoking MoveToRegion to avoid feedback loops).

Copilot uses AI. Check for mistakes.
}

/// <summary>
/// Gets the elements (pins, polygons, polylines, etc.) currently added to this map.
/// </summary>
Expand Down Expand Up @@ -224,6 +238,14 @@ void SetVisibleRegion(MapSpan? visibleRegion)
OnPropertyChanged(nameof(VisibleRegion));
}

void OnRegionPropertyChanged(MapSpan? newRegion)
{
if (newRegion is not null)
{
MoveToRegion(newRegion);
}
}

void PinsOnCollectionChanged(object? sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems is not null && e.NewItems.Cast<Pin>().Any(pin => pin.Label is null))
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
3 changes: 3 additions & 0 deletions src/Controls/Maps/src/PublicAPI/net/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
89 changes: 89 additions & 0 deletions src/Controls/tests/Core.UnitTests/MapSpanTypeConverterTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
using System;
using System.Globalization;
using Microsoft.Maui.Devices.Sensors;
using Microsoft.Maui.Maps;
using Xunit;

namespace Microsoft.Maui.Controls.Core.UnitTests
{
public class MapSpanTypeConverterTests : BaseTestFixture
{
[Fact]
public void ConvertFromValidString()
{
var converter = new MapSpanTypeConverter();
var result = (MapSpan)converter.ConvertFrom(null, CultureInfo.InvariantCulture, "36.9628,-122.0195,0.01,0.02")!;

Assert.Equal(36.9628, result.Center.Latitude, 4);
Assert.Equal(-122.0195, result.Center.Longitude, 4);
Assert.Equal(0.01, result.LatitudeDegrees, 10);
Assert.Equal(0.02, result.LongitudeDegrees, 10);
}

[Fact]
public void ConvertFromWithSpaces()
{
var converter = new MapSpanTypeConverter();
var result = (MapSpan)converter.ConvertFrom(null, CultureInfo.InvariantCulture, " 36.9628 , -122.0195 , 0.01 , 0.02 ")!;

Assert.Equal(36.9628, result.Center.Latitude, 4);
Assert.Equal(-122.0195, result.Center.Longitude, 4);
}

[Fact]
public void ConvertToString()
{
var converter = new MapSpanTypeConverter();
var span = new MapSpan(new Location(36.9628, -122.0195), 0.01, 0.02);
var result = converter.ConvertTo(null, CultureInfo.InvariantCulture, span, typeof(string));

Assert.Equal("36.9628,-122.0195,0.01,0.02", result);
}

[Fact]
public void ConvertFromInvalidStringThrows()
{
var converter = new MapSpanTypeConverter();
Assert.Throws<InvalidOperationException>(() =>
converter.ConvertFrom(null, CultureInfo.InvariantCulture, "invalid"));
}

[Fact]
public void ConvertFromTooFewPartsThrows()
{
var converter = new MapSpanTypeConverter();
Assert.Throws<InvalidOperationException>(() =>
converter.ConvertFrom(null, CultureInfo.InvariantCulture, "36.9628,-122.0195"));
}

[Fact]
public void ConvertFromEmptyStringThrows()
{
var converter = new MapSpanTypeConverter();
Assert.Throws<InvalidOperationException>(() =>
converter.ConvertFrom(null, CultureInfo.InvariantCulture, ""));
}

[Fact]
public void CanConvertFromString()
{
var converter = new MapSpanTypeConverter();
Assert.True(converter.CanConvertFrom(null, typeof(string)));
Assert.False(converter.CanConvertFrom(null, typeof(int)));
}

[Fact]
public void RoundTrip()
{
var converter = new MapSpanTypeConverter();
var original = new MapSpan(new Location(47.6062, -122.3321), 0.5, 0.5);
var str = (string)converter.ConvertTo(null, CultureInfo.InvariantCulture, original, typeof(string))!;
var result = (MapSpan)converter.ConvertFrom(null, CultureInfo.InvariantCulture, str)!;

Assert.Equal(original.Center.Latitude, result.Center.Latitude, 10);
Assert.Equal(original.Center.Longitude, result.Center.Longitude, 10);
Assert.Equal(original.LatitudeDegrees, result.LatitudeDegrees, 10);
Assert.Equal(original.LongitudeDegrees, result.LongitudeDegrees, 10);
}
}
}
59 changes: 59 additions & 0 deletions src/Core/maps/src/Converters/MapSpanTypeConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using System;
using System.ComponentModel;
using System.Globalization;
using Microsoft.Maui.Devices.Sensors;

namespace Microsoft.Maui.Maps
{
/// <summary>
/// A type converter that converts a string representation to a <see cref="MapSpan"/> object.
/// </summary>
/// <remarks>
/// Supported formats:
/// <list type="bullet">
/// <item><description><c>"latitude,longitude,latitudeDegrees,longitudeDegrees"</c> (e.g., <c>"36.9628,-122.0195,0.01,0.01"</c>)</description></item>
/// </list>
/// </remarks>
public class MapSpanTypeConverter : TypeConverter
{
/// <inheritdoc/>
public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType)
=> sourceType == typeof(string);

/// <inheritdoc/>
public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType)
=> destinationType == typeof(string);

/// <inheritdoc/>
public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value)
{
var strValue = value?.ToString()?.Trim();

if (string.IsNullOrEmpty(strValue))
throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(MapSpan)}");

var parts = strValue.Split(',');

if (parts.Length == 4
&& double.TryParse(parts[0].Trim(), NumberStyles.Float | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out double latitude)
&& double.TryParse(parts[1].Trim(), NumberStyles.Float | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out double longitude)
&& double.TryParse(parts[2].Trim(), NumberStyles.Float | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out double latDegrees)
&& double.TryParse(parts[3].Trim(), NumberStyles.Float | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out double lonDegrees))
{
return new MapSpan(new Location(latitude, longitude), latDegrees, lonDegrees);
}

throw new InvalidOperationException($"Cannot convert \"{strValue}\" into {typeof(MapSpan)}");
}

/// <inheritdoc/>
public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType)
{
if (value is not MapSpan span)
throw new NotSupportedException();

return $"{span.Center.Latitude.ToString(CultureInfo.InvariantCulture)},{span.Center.Longitude.ToString(CultureInfo.InvariantCulture)}," +
$"{span.LatitudeDegrees.ToString(CultureInfo.InvariantCulture)},{span.LongitudeDegrees.ToString(CultureInfo.InvariantCulture)}";
}
}
}
2 changes: 2 additions & 0 deletions src/Core/maps/src/Primitives/MapSpan.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.ComponentModel;
using Microsoft.Maui.Devices.Sensors;

namespace Microsoft.Maui.Maps
{
/// <summary>
/// Represents a rectangular region on the map, defined by a center point and span.
/// </summary>
[TypeConverter(typeof(MapSpanTypeConverter))]
public sealed class MapSpan
{
const double EarthCircumferenceKm = GeographyUtils.EarthRadiusKm * 2 * Math.PI;
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
6 changes: 6 additions & 0 deletions src/Core/maps/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
6 changes: 6 additions & 0 deletions src/Core/maps/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
6 changes: 6 additions & 0 deletions src/Core/maps/src/PublicAPI/net/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Maps.MapSpanTypeConverter
Microsoft.Maui.Maps.MapSpanTypeConverter.MapSpanTypeConverter() -> void
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type! sourceType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object! value) -> object?
override Microsoft.Maui.Maps.MapSpanTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type! destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Devices.Sensors.LocationTypeConverter
Microsoft.Maui.Devices.Sensors.LocationTypeConverter.LocationTypeConverter() -> void
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type sourceType) -> bool
override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object value) -> object?
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type destinationType) -> object?
6 changes: 6 additions & 0 deletions src/Essentials/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Devices.Sensors.LocationTypeConverter
Microsoft.Maui.Devices.Sensors.LocationTypeConverter.LocationTypeConverter() -> void
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type sourceType) -> bool
override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object value) -> object?
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Devices.Sensors.LocationTypeConverter
Microsoft.Maui.Devices.Sensors.LocationTypeConverter.LocationTypeConverter() -> void
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type sourceType) -> bool
override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object value) -> object?
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Devices.Sensors.LocationTypeConverter
Microsoft.Maui.Devices.Sensors.LocationTypeConverter.LocationTypeConverter() -> void
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type sourceType) -> bool
override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object value) -> object?
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type destinationType) -> object?
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#nullable enable
Microsoft.Maui.Devices.Sensors.LocationTypeConverter
Microsoft.Maui.Devices.Sensors.LocationTypeConverter.LocationTypeConverter() -> void
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Type sourceType) -> bool
override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Type? destinationType) -> bool
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object value) -> object?
~override Microsoft.Maui.Devices.Sensors.LocationTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext? context, System.Globalization.CultureInfo? culture, object? value, System.Type destinationType) -> object?
Loading
Loading