CtrEditor/Converters/SubtractConverter.cs

55 lines
1.7 KiB
C#

using System;
using System.Globalization;
using System.Windows.Data;
namespace CtrEditor.Converters
{
/// <summary>
/// Converter that subtracts a parameter value from the input value
/// Useful for calculations like width - margin, etc.
/// </summary>
public class SubtractConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
if (value != null && parameter != null)
{
var inputValue = System.Convert.ToDouble(value);
var subtractValue = System.Convert.ToDouble(parameter);
var result = inputValue - subtractValue;
return Math.Max(0, result); // Ensure result is not negative
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"SubtractConverter.Convert: Exception - {ex.Message}");
}
return 0.0;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
if (value != null && parameter != null)
{
var inputValue = System.Convert.ToDouble(value);
var addValue = System.Convert.ToDouble(parameter);
return inputValue + addValue;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"SubtractConverter.ConvertBack: Exception - {ex.Message}");
}
return 0.0;
}
}
}