更新项目配置,新增设备同步模块,优化WebSocket和Swagger配置,增强SCADA系统的免登录接口,支持数据字典项和登录日志的免登录查询与记录。调整Java编译设置,确保更好的开发体验。
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace YY.Admin.Core.Converter
|
||||
{
|
||||
/// <summary>
|
||||
/// 将枚举值和 bool 互转,适用于 ToggleButton 或 RadioButton
|
||||
/// </summary>
|
||||
public class EnumToBoolConverter : IValueConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// 将枚举值转换为 bool
|
||||
/// </summary>
|
||||
/// <param name="value">绑定的枚举值</param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter">ConverterParameter 指定要匹配的枚举值</param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns>匹配返回 true,否则 false</returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
string enumValue = value?.ToString() ?? string.Empty;
|
||||
string targetValue = parameter?.ToString() ?? string.Empty;
|
||||
|
||||
return enumValue.Equals(targetValue, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将 bool 转回枚举值
|
||||
/// </summary>
|
||||
/// <param name="value">ToggleButton.IsChecked</param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter">ConverterParameter 指定对应的枚举值</param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns>如果 true 返回枚举,否则返回 Binding.DoNothing</returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is bool isChecked && isChecked && parameter != null)
|
||||
{
|
||||
// 判断 targetType 是否是 Nullable 类型
|
||||
if (Nullable.GetUnderlyingType(targetType) != null)
|
||||
{
|
||||
// 获取 Nullable 的基础类型
|
||||
Type underlyingType = Nullable.GetUnderlyingType(targetType)!;
|
||||
|
||||
// 确保基础类型是枚举类型
|
||||
if (underlyingType?.IsEnum == true)
|
||||
{
|
||||
return Enum.Parse(underlyingType, parameter.ToString()!);
|
||||
}
|
||||
}
|
||||
// 如果不是枚举类型或 Nullable 类型,返回 Binding.DoNothing
|
||||
else if (targetType.IsEnum)
|
||||
{
|
||||
return Enum.Parse(targetType, parameter.ToString()!);
|
||||
}
|
||||
}
|
||||
return Binding.DoNothing;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user