/// <summary> /// Deregister an accordion for observed accordions /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task Deregister(IAccordionModel model) { if (this.Items.Contains(model)) { this.Items.Remove(model); } await Task.CompletedTask; }
/// <summary> /// Opens the targeted accordion /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task Open(IAccordionModel model) { foreach (var accordion in this.Items.Where(accordion => !accordion.AllowsMultiple)) { await this.Close(accordion); } model.IsExpanded = true; await Task.CompletedTask; }
/// <summary> /// Toggles the targeted accordion /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task Toggle(IAccordionModel model) { if (model.IsExpanded) { await this.Close(model); } else { await this.Open(model); } await Task.CompletedTask; }
/// <summary> /// Closes the targeted accordion /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task Close(IAccordionModel model) { model.IsExpanded = false; await Task.CompletedTask; }
/// <summary> /// Register an accordion to be interacted with /// </summary> /// <param name="model"></param> /// <returns></returns> public virtual async Task Register(IAccordionModel model) { this.Items.Add(model); await Task.CompletedTask; }