using System.Globalization;
using System.Windows.Data;
namespace Melskin.Converters.Internal;
///
/// 隔行交错背景颜色
///
[ValueConversion(typeof(int), typeof(Visibility))]
public class InterlacedBackgroundConverter : IValueConverter
{
///
/// InterlacedBackgroundConverter 的单例实例,用于提供隔行交错背景颜色的转换功能。
/// 该实例可以直接在XAML中通过静态资源引用,以便为列表项等控件设置交替背景颜色。
///
public static readonly InterlacedBackgroundConverter Instance = new();
///
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
var line = (int)(value ?? throw new ArgumentNullException(nameof(value)));
return line % 2 == 0 ? Visibility.Collapsed : Visibility.Visible;
}
///
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}