Files
Shrlalgo.RvKits/Melskin/Converters/NullOrEmptyConverter.cs
2026-02-17 22:17:13 +08:00

41 lines
1.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Globalization;
using System.Windows.Data;
namespace Melskin.Converters;
/// <summary>
/// 支持判断是否为 null 或空字符串,以及是否为非 null 且非空字符串的转换器
/// </summary>
public class NullOrEmptyConverter : IValueConverter
{
private readonly bool isNotNullOrEmpty;
/// <summary>
/// 判断对象是否为 null 或空字符串的单例实例
/// </summary>
public static readonly NullOrEmptyConverter Instance = new(false);
/// <summary>
/// 判断对象是否为非 null 且非空字符串的单例实例
/// </summary>
public static readonly NullOrEmptyConverter NotInstance = new(true);
private NullOrEmptyConverter(bool isNotNullOrEmpty = false)
{
this.isNotNullOrEmpty = isNotNullOrEmpty;
}
/// <inheritdoc/>
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
// 如果值为 null 或空字符串,则返回 true否则返回 false
var result = value == null || string.IsNullOrEmpty(value.ToString());
return isNotNullOrEmpty ? !result : result;
}
/// <inheritdoc/>
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}