Хотя с точки зрения производительности единственной важной вещью является не выполнять преобразование в каждом вызове Convert
-метода (как было явно показано в других ответах), я бы никогда не написал такой жестко закодированный преобразователь в во-первых, если вы можете что-то параметризировать, не стесняйтесь, например:
public class OnValueToColorConverter : IValueConverter
{
public int Value { get; set; }
public Color OnValueColor { get; set; }
public Color OffValueColor { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (int)value == Value ? OnValueColor : OffValueColor;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
<vc:OnValueToColorConverter Value="1"
OnValueColor="#FCD44E"
OffValueColor="#FCD666" />
( Для такого рода вещей обычно не используют конвертер, кстати, но Style
с установщиком по умолчанию и DataTrigger
для значение, на которое оно должно измениться. )