Возможно ли двухстороннее связывание или связывание с событием в Blazor без строк? Я сделал это с текстом без проблем, но любой другой тип объекта вызывает у меня проблемы.
Например, у меня есть метод, который выполняется при вводе текста в поле, которое также основано на введенном значениикак несколько других входных данных в форме.
<InputNumber step=".01" class="form-control form-control-xs" @bind-Value="@Salary" @bind-Value:event="onkeydown"/>
private decimal salary {get; set;}
public decimal Salary
{
get
{
return salary;
}
set
{
salary = value;
CalculationHere();
}
}
Когда я делаю это, я получаю следующую ошибку:
Iтакже попытался передать его в качестве параметра, например, так:
@oninput="@((ChangeEventArgs __e) => CalculationHere(Convert.ToDecimal(__e.Value)"
Это также не работает, так как вызывает ошибку, когда текстовое поле пустое и не срабатывает для всех входных данных (пытался при нажатой клавише какЧто ж). Есть также много параметров, поэтому, если возможно, я бы хотел этого избежать.
Я также должен отметить, что когда я запускаю этот проект, установите точку останова в вызываемом методе и выполните привязку, как показано ниже,это работает. Однако удаление точки останова останавливает ее работу. Это очень смутило меня.
<InputNumber step=".01" class="form-control form-control-xs" @bind-Value="@Salary" @oninput="(() => CalculationHere())"/>
Есть ли лучшая практика в этом отношении? Я новичок в веб-разработке, и сам Blazor очень новый, поэтому я не уверен, что лучший путь здесь ... Какой совет? Спасибо!