using System;
using System.Globalization;
using Avalonia.Data.Converters;
using Avalonia.Media;
namespace ChronoFlow.View.Converter
{
///
/// Konvertiert einen booleschen Wert in eine Farbe (Brush).
/// True => Blau, False => Grau.
/// Wird z. B. für farbliche Statusanzeigen in der Oberfläche verwendet.
///
public class BoolToBrushConverter : IValueConverter
{
///
/// Die Farbe, die bei "true" verwendet wird.
/// Kann in XAML überschrieben werden.
///
public IBrush TrueBrush { get; set; } = Brushes.Blue;
///
/// Die Farbe, die bei "false" verwendet wird.
/// Kann in XAML überschrieben werden.
///
public IBrush FalseBrush { get; set; } = Brushes.Gray;
///
/// Führt die Umwandlung des bool-Wertes in eine Brush durch.
///
/// Der Wert, der umgewandelt werden soll (sollte bool sein).
/// Zieltyp der Bindung (erwartet IBrush).
/// Optionaler Parameter (nicht verwendet).
/// Kultureinstellungen (nicht verwendet).
/// TrueBrush oder FalseBrush abhängig vom bool-Wert.
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is bool boolValue && boolValue)
return TrueBrush;
return FalseBrush;
}
///
/// Umkehrkonvertierung wird hier nicht benötigt.
///
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException(); // wird i.d.R. nicht benötigt
}
}
}