diff --git a/src/Connected.Components/Components/NumberInput.razor b/src/Connected.Components/Components/NumberInput.razor index 70f581a..aebe254 100644 --- a/src/Connected.Components/Components/NumberInput.razor +++ b/src/Connected.Components/Components/NumberInput.razor @@ -10,12 +10,13 @@ step="@_step" disabled="@Disabled" readonly="@Readonly" + value="@_value" @onkeydown=@(args => ChangeValue(args)) @onkeydown:preventDefault="@_preventDefaultAction" @oninput=@GetValueAsync @onmousewheel=@OnMouseWheel + @onchange="@Change" @onwheel="OnMouseWheel" - @bind-value="@_value" @attributes="@InputAttributes" /> diff --git a/src/Connected.Components/Components/NumberInput.razor.cs b/src/Connected.Components/Components/NumberInput.razor.cs index 3615c27..01a81c8 100644 --- a/src/Connected.Components/Components/NumberInput.razor.cs +++ b/src/Connected.Components/Components/NumberInput.razor.cs @@ -121,16 +121,25 @@ public partial class NumberInput:InputBase where NumberType : INumbe } if (string.IsNullOrEmpty(newVal)) { - await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces((NumberType)Convert.ChangeType(null, typeof(NumberType))), typeof(NumberType))); + await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType((NumberType)Convert.ChangeType(null, typeof(NumberType)), typeof(NumberType))); } else { if (!newVal.Equals(_value)) - await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType(AdjustDecimalPlaces((NumberType)Convert.ChangeType(newVal, typeof(NumberType))), typeof(NumberType))); + await ValueChanged.InvokeAsync((NumberType)Convert.ChangeType((NumberType)Convert.ChangeType(newVal, typeof(NumberType)), typeof(NumberType))); } } } + public async Task Change(ChangeEventArgs args) + { + if (args.Value is not null) + { + Value = AdjustDecimalPlaces((NumberType)Convert.ChangeType(args.Value, typeof(NumberType))); + } + ValueChanged.InvokeAsync(Value); + } + [Parameter] public EventCallback OnKeyDown { get; set; } private bool CheckKey(string key)