internal async System.Threading.Tasks.Task SelectStep(RadzenStepsItem step, bool raiseChange = false) { var valid = true; if (EditContext != null) { valid = EditContext.Validate(); } var newIndex = steps.IndexOf(step); if (valid || newIndex < SelectedIndex) { SelectedIndex = newIndex; if (raiseChange) { await Change.InvokeAsync(SelectedIndex); await SelectedIndexChanged.InvokeAsync(SelectedIndex); StateHasChanged(); } } }
/// <summary> /// Removes the step. /// </summary> /// <param name="item">The item.</param> public void RemoveStep(RadzenStepsItem item) { if (steps.Contains(item)) { steps.Remove(item); if (!disposed) { try { InvokeAsync(StateHasChanged); } catch { } } } }
/// <summary> /// Adds the step. /// </summary> /// <param name="step">The step.</param> public void AddStep(RadzenStepsItem step) { if (steps.IndexOf(step) == -1) { if (step.Selected) { SelectedIndex = steps.Count; } steps.Add(step); StateHasChanged(); } }
/// <summary> /// Determines whether the specified index is selected. /// </summary> /// <param name="index">The index.</param> /// <param name="step">The step.</param> /// <returns><c>true</c> if the specified index is selected; otherwise, <c>false</c>.</returns> protected bool IsSelected(int index, RadzenStepsItem step) { return(SelectedIndex == index); }