MudForm.ResetValidation() и ResetAsync() не работают должным образомC#

Место общения программистов C#
Anonymous
MudForm.ResetValidation() и ResetAsync() не работают должным образом

Сообщение Anonymous »

Я работаю с MudBlazor, и у меня возникла проблема с MudForm. При переключении элемента в режим «Редактирование» я извлекаю данные и пытаюсь удалить все существующие ошибки проверки, возникшие в результате предыдущих взаимодействий, но сообщения проверки сохраняются в пользовательском интерфейсе.
В моей логике я проверяю категорию элемента, а затем вызываю ResetValidation() и ResetAsync() для соответствующей ссылки на форму. Однако в форме по-прежнему отображаются красные рамки или сообщения об ошибках.
Вот соответствующий фрагмент кода:

Код: Выделить всё

private async Task HandleEdit(DatItem item)
{
var detail = await GetDetailDat(item.Id);
if (detail == null) return;

var isDatO = detail.MaNhom == "DAT_O";
if (isDatO)
{
// ... mapping data logic ...

// Trying to clear validation here
InvokeAsync(() => _formMud.ResetValidation());
_formMud.ResetAsync();
}
else
{
// ... mapping data logic ...

// Same reset logic for the other form
InvokeAsync(() => _formMudK.ResetValidation());
_formMudK.ResetAsync();
}
}
Что я пробовал:
  • Использование _formMud.ResetValidation() только для очистки ошибок.
  • Использование _formMud.ResetAsync() для сброса значений и проверки.
  • Обертывание вызова в InvokeAsync(() => ...), чтобы гарантировать, что он выполняется в потоке пользовательского интерфейса.
  • Я проверил, что _formMud правильно @bind-Target для MudForm в файле .razor.
The Проблема: Даже после этих вызовов поля формы по-прежнему отображают ошибки проверки из предыдущего состояния. Похоже, что сброс происходит до того, как новые данные будут полностью привязаны, или пользовательский интерфейс не обновляет состояние проверки правильно.
Как правильно заставить MudForm очищать все состояния проверки при загрузке новых данных в форму?

Вернуться в «C#»