Визуализировать компонент blaz с отключенным свойством, установленным после применения бизнес-логики ⇐ C#

Место общения программистов C#
Anonymous
Визуализировать компонент blaz с отключенным свойством, установленным после применения бизнес-логики

Сообщение Anonymous »

У меня возникла проблема с отрисовкой компонента с определенным свойством после применения некоторой бизнес-логики. Веб-страница должна следовать следующей логике:
  • клиент заходит на страницу
  • Вызывается OnInitializedAsync()
  • Появляется кружок загрузки, сигнализирующий о применении бизнес-логики.
  • Применена бизнес-логика и заданы свойства.
  • Свойство видимости установлено, а функция оставлена.
  • компоненты отображаются с определенными свойствами и отображаются клиенту.
Чтобы быть более конкретным, это определенный ComboBox которое должно иметь отключенное свойство после применения логики. После вызова OnInitializedAsync() свойство устанавливается, что я подтвердил с помощью отладчика. Однако ComboBox отображается с включенным статусом, как будто настройка свойства по какой-то причине игнорируется.
Я попробовал Task.Delay() и StateHasChanged в конце OnInitializedAsync(). Я также попробовал использовать OnAfterRenderAsync() и установить там свойство с помощью вызова StateHasChanged, но безрезультатно.
Единственный способ заставить это работать — удалить проверку @if(isVisible) вверху моей страницы бритвы. В этом случае применяется свойство отключено, однако клиент увидит компоненты до того, как они будут «готовы», и даже успеет взаимодействовать с ними, поскольку происходит огромная задержка. Это выглядит глупо и непрофессионально. Не могли бы вы объяснить мне, каким будет общий или лучший подход к этой проблеме?
Вот примерный псевдокод:

@if(isVisible)
{

}

@code
{
private ComboBox MyComboBox {get;set;}
private bool isVisible = false;

protected override OnInitializedAsync()
{
"Do Some Stuff"
this.MyComboBox.Enabled = false;
this.isVisible = true;
StateHasChanged();
}
}



Подробнее здесь: https://stackoverflow.com/questions/791 ... gic-applie

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