Jelajahi Sumber

增加 开关限位转换器

LC 2 bulan lalu
induk
melakukan
133b06240d
1 mengubah file dengan 43 tambahan dan 0 penghapusan
  1. 43 0
      Converters/LimitSwitchNumberToBooleanConverter.cs

+ 43 - 0
Converters/LimitSwitchNumberToBooleanConverter.cs

@@ -0,0 +1,43 @@
+using SWRIS.Enums;
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace SWRIS.Converters
+{
+    public class LimitSwitchNumberToBooleanConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (value == null || parameter == null) return false;
+
+            if (value is int valueNumber && int.TryParse(parameter.ToString(), out int parameterNumber))
+            {
+                return valueNumber == parameterNumber;
+            }
+            return false;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (value == null || parameter == null)
+                return Binding.DoNothing;
+
+            if (value is bool boolValue && boolValue)
+            {
+                if (parameter is int parameterNumber)
+                {
+                    return parameterNumber;
+                }
+
+                if (parameter is string parameterString && int.TryParse(parameterString, out int parsedNumber))
+                {
+                    return parsedNumber;
+                }
+            }
+
+            return Binding.DoNothing;
+        }
+    }
+}
+