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]