Estou usando o componente MudNumericField no meu projeto MudBlazor com um valor de passo de 0,5M, portanto, apenas valores como 0,5, 1,0, 1,5, etc., são permitidos. Se um usuário inserir manualmente um valor como 1,23, um erro será exibido — o que é esperado.
No entanto, se o usuário inserir 1,23 e usar as setas para cima/baixo do mouse, o novo valor se tornará 1,73 ou 0,73 (ou seja, 1,23 ± 0,5), o que eu não quero. Gostaria de arredondar o valor para uma casa decimal após cada incremento/decremento — por exemplo, passando de 1,23 para 1,5 em vez de 1,73.
Notei que OnKeyUp e OnKeyDown funcionam para interações de teclado, mas não para cliques do mouse nos botões giratórios.
Existe uma maneira de me conectar aos eventos de incremento/decremento do MudNumericField para que eu possa aplicar minha lógica de arredondamento? Ainda sou novo no MudBlazor.
Código
<MudNumericField
T="decimal"
@bind-Value="@Days"
Label="Days"
Variant="@Variant.Text"
Min="0.5M"
Max="100"
Step="0.5M"
Error="@(!IsDaysMultipleOfHalf)"
/>
Você pode usar
Value
&ValueChanged
propriedades em vez de@bind-Value
para manipular lógica personalizada.Aqui no exemplo, arredondamos o valor para o passo de 0,5 mais próximo diretamente, então, se o usuário inserir 1,23, ele arredondará automaticamente e vinculará o valor a 1 ou, se o usuário inserir 1,73, ele alterará o valor para 1,5. Isso também significa que a
Error
propriedade não é realmente necessária.Trecho de demonstração