diff --git a/MapControl/Avalonia/MapBase.Avalonia.cs b/MapControl/Avalonia/MapBase.Avalonia.cs
index 37747cea..89d3a2b5 100644
--- a/MapControl/Avalonia/MapBase.Avalonia.cs
+++ b/MapControl/Avalonia/MapBase.Avalonia.cs
@@ -4,6 +4,7 @@ global using Avalonia.Animation.Easings;
global using Avalonia.Controls;
global using Avalonia.Controls.Documents;
global using Avalonia.Data;
+global using Avalonia.Data.Converters;
global using Avalonia.Input;
global using Avalonia.Interactivity;
global using Avalonia.Media;
diff --git a/MapControl/Shared/TypeConverters.cs b/MapControl/Shared/TypeConverters.cs
index 9f94b41b..53d0e37a 100644
--- a/MapControl/Shared/TypeConverters.cs
+++ b/MapControl/Shared/TypeConverters.cs
@@ -1,10 +1,22 @@
using System;
using System.ComponentModel;
using System.Globalization;
+#if WPF
+using System.Windows.Data;
+#elif UWP
+using Windows.UI.Xaml.Data;
+#elif WINUI
+using Microsoft.UI.Xaml.Data;
+#endif
+#if UWP || WINUI
+using ConverterCulture = System.String;
+#else
+using ConverterCulture = System.Globalization.CultureInfo;
+#endif
namespace MapControl
{
- public class LocationConverter : TypeConverter
+ public class LocationConverter : TypeConverter, IValueConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -13,11 +25,21 @@ namespace MapControl
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
- return Location.Parse((string)value);
+ return Location.Parse(value.ToString());
+ }
+
+ public object Convert(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return Location.Parse(value.ToString());
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return value.ToString();
}
}
- public class LocationCollectionConverter : TypeConverter
+ public class LocationCollectionConverter : TypeConverter, IValueConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -26,11 +48,21 @@ namespace MapControl
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
- return LocationCollection.Parse((string)value);
+ return LocationCollection.Parse(value.ToString());
+ }
+
+ public object Convert(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return LocationCollection.Parse(value.ToString());
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return value.ToString();
}
}
- public class BoundingBoxConverter : TypeConverter
+ public class BoundingBoxConverter : TypeConverter, IValueConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -39,11 +71,21 @@ namespace MapControl
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
- return BoundingBox.Parse((string)value);
+ return BoundingBox.Parse(value.ToString());
+ }
+
+ public object Convert(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return BoundingBox.Parse(value.ToString());
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return value.ToString();
}
}
- public class TileSourceConverter : TypeConverter
+ public class TileSourceConverter : TypeConverter, IValueConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -52,7 +94,17 @@ namespace MapControl
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
- return TileSource.Parse((string)value);
+ return TileSource.Parse(value.ToString());
+ }
+
+ public object Convert(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return TileSource.Parse(value.ToString());
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, ConverterCulture culture)
+ {
+ return value.ToString();
}
}
}
diff --git a/MapControl/UWP/MapControl.UWP.csproj b/MapControl/UWP/MapControl.UWP.csproj
index f1a2b58c..970eef71 100644
--- a/MapControl/UWP/MapControl.UWP.csproj
+++ b/MapControl/UWP/MapControl.UWP.csproj
@@ -188,6 +188,9 @@
TransverseMercatorProjection.cs
+
+ TypeConverters.cs
+
ViewportChangedEventArgs.cs
@@ -278,9 +281,6 @@
Tile.WinUI.cs
-
- ValueConverters.cs
-
diff --git a/MapControl/WinUI/MapControl.WinUI.csproj b/MapControl/WinUI/MapControl.WinUI.csproj
index e70c9af9..1ae27f33 100644
--- a/MapControl/WinUI/MapControl.WinUI.csproj
+++ b/MapControl/WinUI/MapControl.WinUI.csproj
@@ -17,11 +17,6 @@
-
-
-
-
-
diff --git a/MapControl/WinUI/ValueConverters.cs b/MapControl/WinUI/ValueConverters.cs
deleted file mode 100644
index 657c0556..00000000
--- a/MapControl/WinUI/ValueConverters.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using System;
-#if UWP
-using Windows.UI.Xaml.Data;
-#elif WINUI
-using Microsoft.UI.Xaml.Data;
-#endif
-
-namespace MapControl
-{
- public class LocationConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return Location.Parse(value.ToString());
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value.ToString();
- }
- }
-
- public class LocationCollectionConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return LocationCollection.Parse(value.ToString());
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value.ToString();
- }
- }
-
- public class BoundingBoxConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return BoundingBox.Parse(value.ToString());
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value.ToString();
- }
- }
-
- public class TileSourceConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, string language)
- {
- return TileSource.Parse(value.ToString());
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, string language)
- {
- return value.ToString();
- }
- }
-}