PaymentAdjustmentWindow: Improve DataGrid and add status bar
All checks were successful
Test / Run tests (push) Successful in 2m26s
All checks were successful
Test / Run tests (push) Successful in 2m26s
This commit is contained in:
41
Elwig/Controls/UnitConverter.cs
Normal file
41
Elwig/Controls/UnitConverter.cs
Normal file
@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace Elwig.Controls {
|
||||
public class UnitConverter : DependencyObject, IValueConverter {
|
||||
|
||||
public static readonly DependencyProperty UnitProperty = DependencyProperty.Register("Unit", typeof(string), typeof(UnitConverter), new FrameworkPropertyMetadata(null));
|
||||
public string Unit {
|
||||
get => (string)GetValue(UnitProperty);
|
||||
set => SetValue(UnitProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty PrecisionProperty = DependencyProperty.Register("Precision", typeof(byte), typeof(UnitConverter), new FrameworkPropertyMetadata((byte)0));
|
||||
public byte Precision {
|
||||
get => (byte)GetValue(PrecisionProperty);
|
||||
set => SetValue(PrecisionProperty, value);
|
||||
}
|
||||
|
||||
public object? Convert(object? value, Type targetType, object parameter, CultureInfo culture) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var fmt = $"{{0:N{Precision}}}";
|
||||
var unit = $"{(Unit != null ? " " : "")}{Unit}";
|
||||
if (value is int i) {
|
||||
return $"{string.Format(fmt, i)}{unit}";
|
||||
} else if (value is decimal d) {
|
||||
return $"{string.Format(fmt, d)}{unit}";
|
||||
}
|
||||
|
||||
return Binding.DoNothing;
|
||||
}
|
||||
|
||||
public object? ConvertBack(object? value, Type targetType, object parameter, CultureInfo culture) {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user