/// <summary> /// Adds the item. /// </summary> /// <param name="item">The item.</param> public void AddItem(RadzenSelectBarItem item) { if (items.IndexOf(item) == -1) { items.Add(item); StateHasChanged(); } }
/// <summary> /// Removes the item. /// </summary> /// <param name="item">The item.</param> public void RemoveItem(RadzenSelectBarItem item) { if (items.Contains(item)) { items.Remove(item); if (!disposed) { try { InvokeAsync(StateHasChanged); } catch { } } } }
/// <summary> /// Determines whether the specified item is selected. /// </summary> /// <param name="item">The item.</param> /// <returns><c>true</c> if the specified item is selected; otherwise, <c>false</c>.</returns> protected bool IsSelected(RadzenSelectBarItem item) { if (Value != null) { if (Multiple) { return(((IEnumerable)Value).Cast <object>().Contains(item.Value)); } else { return(object.Equals(Value, item.Value)); } } return(false); }
/// <summary> /// Selects the item. /// </summary> /// <param name="item">The item.</param> protected async System.Threading.Tasks.Task SelectItem(RadzenSelectBarItem item) { if (Disabled) { return; } if (Multiple) { var type = typeof(TValue).IsGenericType ? typeof(TValue).GetGenericArguments()[0] : typeof(TValue); var selectedValues = Value != null ? ((IEnumerable)Value).AsQueryable().Cast(type).AsEnumerable().ToList() : new List <dynamic>(); if (!selectedValues.Contains(item.Value)) { selectedValues.Add(item.Value); } else { selectedValues.Remove(item.Value); } Value = (TValue)selectedValues.AsQueryable().Cast(type); } else { Value = (TValue)item.Value; } await ValueChanged.InvokeAsync(Value); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(Value); StateHasChanged(); }
ClassList ButtonClassList(RadzenSelectBarItem item) => ClassList.Create("rz-button rz-button-text-only") .Add("rz-state-active", IsSelected(item)) .AddDisabled(Disabled);