20230102
This commit is contained in:
@@ -14,7 +14,8 @@ public sealed class CountConverter : ValueConverter
|
||||
/// Конструктор класса
|
||||
/// </summary>
|
||||
/// <param name="valueNames">Массив имён размерностей</param>
|
||||
public CountConverter (string[] valueNames) : base(valueNames, 1000)
|
||||
/// <param name="decimalPlace">Знаков после запятой (0, 1, 2)</param>
|
||||
public CountConverter (string[] valueNames, byte decimalPlace = 0) : base(valueNames, 1000, decimalPlace)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@@ -14,7 +14,8 @@ public sealed class FileSizeConverter : ValueConverter
|
||||
/// Конструктор класса
|
||||
/// </summary>
|
||||
/// <param name="valueNames">Массив имён размерностей</param>
|
||||
public FileSizeConverter (string[] valueNames) : base(valueNames, 1024)
|
||||
/// <param name="decimalPlace">Знаков после запятой (0, 1, 2)</param>
|
||||
public FileSizeConverter (string[] valueNames, byte decimalPlace = 2) : base(valueNames, 1024, decimalPlace)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@@ -12,10 +12,12 @@ public abstract class ValueConverter: IValueConverter
|
||||
/// </summary>
|
||||
/// <param name="valueNames">Массив имён размерностей</param>
|
||||
/// <param name="divider">Делитель</param>
|
||||
protected ValueConverter (string[] valueNames, long divider)
|
||||
/// <param name="decimalPlaces">Число знаков после запятой</param>
|
||||
protected ValueConverter (string[] valueNames, long divider, byte decimalPlaces)
|
||||
{
|
||||
ValueNames = valueNames;
|
||||
Divider = divider;
|
||||
DecimalPlaces = (byte)(decimalPlaces < 3 ? decimalPlaces : 2);
|
||||
}
|
||||
|
||||
#region Реализация интерфейса
|
||||
@@ -28,6 +30,12 @@ public abstract class ValueConverter: IValueConverter
|
||||
/// Делитель
|
||||
/// </summary>
|
||||
public long Divider { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Знаков после запятой (0, 1, 2)
|
||||
/// </summary>
|
||||
public byte DecimalPlaces { get; init; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Методы
|
||||
@@ -38,9 +46,18 @@ public abstract class ValueConverter: IValueConverter
|
||||
/// <returns>Конвертирование значение в строку</returns>
|
||||
public string Convert (long value)
|
||||
{
|
||||
//Получаю разделенное значение
|
||||
(decimal, int) result = DivideIt(value, 0);
|
||||
|
||||
return $"{result.Item1:F2} {ValueNames[result.Item2]}";
|
||||
//Преобразую значение в строку
|
||||
string resultValue = DecimalPlaces switch {
|
||||
0 => $"{result.Item1:F0}",
|
||||
1 => $"{result.Item1:F1}",
|
||||
_ => $"{result.Item1:F2}"
|
||||
};
|
||||
|
||||
//Возвращаю результат
|
||||
return $"{resultValue} {ValueNames[result.Item2]}";
|
||||
}
|
||||
|
||||
|
||||
@@ -65,8 +82,6 @@ public abstract class ValueConverter: IValueConverter
|
||||
|
||||
//... и продолжаем цикл
|
||||
return DivideIt(value / Divider, count);
|
||||
|
||||
|
||||
}
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user