43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
@using System.Globalization
|
|
|
|
<input @bind="DisplValue" type="number" class="@CssClass" />
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
|
public string CssClass { get; set; } = "";
|
|
|
|
[Parameter]
|
|
public string DisplFormat { get; set; } = "0.000";
|
|
|
|
[Parameter]
|
|
public decimal Value
|
|
{
|
|
get => decimalVal;
|
|
set => decimalVal = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Scan result callback method
|
|
/// </summary>
|
|
[Parameter]
|
|
public EventCallback<decimal> ValueChanged { get; set; }
|
|
|
|
protected string DisplValue
|
|
{
|
|
get => decimalVal.ToString(DisplFormat, culture);
|
|
set
|
|
{
|
|
if (Decimal.TryParse(value, style, culture, out var number))
|
|
{
|
|
decimalVal = Math.Round(number, 3);
|
|
ValueChanged.InvokeAsync(decimalVal);
|
|
}
|
|
}
|
|
}
|
|
|
|
private decimal decimalVal { get; set; } = 0;
|
|
private NumberStyles style = NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign;
|
|
private CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
|
|
|
|
} |