Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.PropertyEditing.Windows/TimeToTextConverter.cs')
-rw-r--r--Xamarin.PropertyEditing.Windows/TimeToTextConverter.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Windows/TimeToTextConverter.cs b/Xamarin.PropertyEditing.Windows/TimeToTextConverter.cs
new file mode 100644
index 0000000..d736141
--- /dev/null
+++ b/Xamarin.PropertyEditing.Windows/TimeToTextConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+using System.Windows.Markup;
+using Xamarin.PropertyEditing.Common;
+
+namespace Xamarin.PropertyEditing.Windows
+{
+ [ValueConversion (typeof (Time), typeof (string))]
+ internal class TimeToTextConverter : MarkupExtension, IValueConverter
+ {
+ public object Convert (object value, Type targetType, object parameter, CultureInfo culture)
+ => !(value is Time timeValue) ? DependencyProperty.UnsetValue
+ : timeValue.ToString ();
+
+ public object ConvertBack (object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is string dateValue) {
+ var parsedValue = Time.Parse (dateValue);
+ if (parsedValue != null)
+ return parsedValue;
+ else
+ return value;
+ } else {
+ return DependencyProperty.UnsetValue;
+ }
+ }
+
+ public override object ProvideValue (IServiceProvider serviceProvider) => this;
+ }
+}