Дочерние элементы управления в asp. net Blazor не обновляются. StateHasChanged () не работает - PullRequest
0 голосов
/ 16 апреля 2020

Пожалуйста, обратитесь к следующему https://github.com/CD1010/BlazorWizard.git по этому вопросу. Образец находится в StepActivations Branch

У меня есть страница под названием DemoWizard, которая включает в себя трехшаговый мастер. Когда я нажимаю кнопку «Toggle Enabled», ссылки второго и третьего шагов должны go включить или отключить. Тем не менее, кажется, что в первый раз требуется 2 щелчка, чтобы отключить заголовки, и состояние всегда позади.
Таким образом, похоже, что StateHasChanged () не обновляет дочерние состояния должным образом.
Обратите внимание, что refre sh () метод был попыткой заставить по крайней мере step2 правильно обновить sh, но безрезультатно.

Есть идеи, почему? обработчик щелчка, который делает переключение ниже.

void OnClick()
{
    step2Enabled = !step2Enabled;
    step3Enabled = !step3Enabled;



    StateHasChanged();
    Step2.Refresh();
}

1 Ответ

0 голосов
/ 20 апреля 2020

Ваш код отображается не так, как рекламируется, но я думаю , что вам нужно сделать, это добавить обратный вызов события в компонент Blazorize CheckEdit:

<Blazorize.CheckEdit @bind-Checked="@Parent.IsValid" CheckedChanged="@VerifyEnabledTabs">Check Me</Blazorise.CheckEdit>

где VerifyEnabledTabs - это метод на верхнем уровне Wizard, который может оценить, где вы находитесь и что завершено / заполнено / проверено / что угодно, чтобы позволить активировать определенные ссылки.

...