#blazor #blazor-webassembly
#blazor #blazor-webassembly
Вопрос:
я ищу способ вызвать метод, когда значение свойства изменяется (не ПОЛЬЗОВАТЕЛЕМ)
например, у меня есть это свойство
[Parameter]public int SelectedPatientId { get; set; }
и когда когда-либо его значение изменяется, я хочу вызвать этот метод
public async void valuechanged()
{
... do something here
}
до сих пор я пробовал это, и это не работает
<input type="hidden" value="@SelectedPatientId" @onchange="valuechanged"/>
<input type="hidden" @bind="@SelectedPatientId" @bind:event="valuechanged"/>
Комментарии:
1. Вы можете вызвать
valuechanged
установщик.
Ответ №1:
Вызов установщика :
int _selectedPatientId;
[Parameter]public int SelectedPatientId
{
get => _selectedPatientId;
set
{
_selectedPatientId = value;
valuechanged();
}
}
Метод asnc должен возвращать не void, а Task или ValueTask
public async Task valuechanged()
{
... do something here
return Task.CompletedTask;
}
Комментарии:
1. Спасибо, это то, что я ищу
2. Я собираюсь сделать то же самое, но это не очень хорошее решение. Исключения будут отброшены, а что, если вам нужно возвращаемое значение асинхронной функции?
3.Я отмечаю, что в примере обратного вызова PropertyChanged MS выполняет «вызов и забвение» для асинхронного метода в установщике свойств:
set => PropertyChanged.InvokeAsync(value);
learn.microsoft.com/en-us/aspnet/core/blazor/components /…