using SWRIS.Enums;
using System;
using System.Globalization;
using System.Windows.Data;

namespace SWRIS.Converters
{
    public class EncoderDirectionToBooleanConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null || parameter == null) { return false; }

            if (value is EncoderDirection valueDirection && Enum.TryParse(parameter.ToString(), true, out EncoderDirection parameterDirection))
            {
                return valueDirection == parameterDirection;
            }
            return false;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            // 空值检查：若输入或参数为 null，不更新源数据
            if (value == null || parameter == null)
                return EncoderDirection.Forward;

            // 仅当 value 为 true 时尝试转换
            if (value is bool boolValue && boolValue)
            {
                // 将参数解析为 EncoderDirection 枚举
                if (Enum.TryParse(parameter.ToString(), true, out EncoderDirection parameterDirection))
                {
                    return parameterDirection; // 返回解析结果
                }
            }
            // 默认情况：不更新源数据
            return EncoderDirection.Forward;
        }
    }
}
