diff --git a/src/Core/Components/Wizard/FluentWizard.razor.cs b/src/Core/Components/Wizard/FluentWizard.razor.cs index dc66be79c5..9884139cde 100644 --- a/src/Core/Components/Wizard/FluentWizard.razor.cs +++ b/src/Core/Components/Wizard/FluentWizard.razor.cs @@ -161,6 +161,7 @@ protected virtual async Task OnNextHandlerAsync(MouseEventArgs e) if (!isCanceled) { Value = targetIndex; + await ValueChanged.InvokeAsync(targetIndex); StateHasChanged(); } } @@ -183,6 +184,7 @@ protected virtual async Task OnPreviousHandlerAsync(MouseEventArgs e) if (!isCanceled) { Value = targetIndex; + await ValueChanged.InvokeAsync(targetIndex); StateHasChanged(); } } @@ -190,7 +192,8 @@ protected virtual async Task OnPreviousHandlerAsync(MouseEventArgs e) /// protected virtual async Task OnStepChangeHandlerAsync(int targetIndex, bool validateEditContexts) { - var stepChangeArgs = new FluentWizardStepChangeEventArgs(targetIndex, _steps[targetIndex].Label); + var stepChangeArgs = new FluentWizardStepChangeEventArgs(targetIndex, _steps[targetIndex].Label); + if (validateEditContexts) { var allEditContextsAreValid = _steps[Value].ValidateEditContexts(); @@ -209,8 +212,6 @@ protected virtual async Task OnStepChangeHandle await _steps[Value].InvokeOnSubmitForEditFormsAsync(); } - await ValueChanged.InvokeAsync(targetIndex); - return await OnStepChangeHandlerAsync(stepChangeArgs); } @@ -269,6 +270,7 @@ internal async Task ValidateAndGoToStepAsync(int targetIndex, bool validateEditC if (!isCanceled) { Value = targetIndex; + await ValueChanged.InvokeAsync(targetIndex); StateHasChanged(); } } diff --git a/tests/Core/Wizard/FluentWizardTests.razor b/tests/Core/Wizard/FluentWizardTests.razor index 4aedae78c3..94c9f0e293 100644 --- a/tests/Core/Wizard/FluentWizardTests.razor +++ b/tests/Core/Wizard/FluentWizardTests.razor @@ -323,6 +323,8 @@ [Fact] public void FluentWizard_EditForm_EditContextIsInValid_OnNext() { + int stepIndex = 0; + var testRecord1 = new TestRecord { NumberBetween1and10 = 15, @@ -333,7 +335,7 @@ NumberBetween1and10 = 15, }; - var cut = Render(@ + var cut = Render(@ @@ -370,6 +372,7 @@ } Assert.False(finishHandled); + Assert.Equal(0, stepIndex); } [Fact]