/// <summary> /// Checkbox 组件选项状态改变时触发此方法 /// </summary> /// <param name="item"></param> /// <param name="v"></param> private async Task OnStateChanged(SelectedItem item, bool v) { item.Active = v; var typeValue = typeof(TValue); if (typeValue == typeof(string)) { CurrentValueAsString = string.Join(",", Items.Where(i => i.Active).Select(i => i.Value)); } else if (typeValue.IsGenericType) { var t = typeValue.GenericTypeArguments; if (Activator.CreateInstance(typeof(List <>).MakeGenericType(t)) is IList instance) { foreach (var sl in Items.Where(i => i.Active)) { if (sl.Value.TryConvertTo(t[0], out var val)) { instance.Add(val); } } CurrentValue = (TValue)instance; } } if (OnSelectedChanged != null) { await OnSelectedChanged.Invoke(Items, Value); } }
/// <summary> /// Checkbox 组件选项状态改变时触发此方法 /// </summary> /// <param name="item"></param> /// <param name="v"></param> protected async Task OnStateChanged(TModel item, bool v) { SetValue(item, v); var typeValue = typeof(TValue); if (typeValue == typeof(string)) { CurrentValueAsString = string.Join(",", Items.Where(i => GetChecked(i)).Select(i => GetValue <object>(i)?.ToString() ?? "")); } else if (typeValue.IsGenericType) { var t = typeValue.GenericTypeArguments; if (Activator.CreateInstance(typeof(List <>).MakeGenericType(t)) is IList instance) { foreach (var model in Items.Where(i => GetChecked(i))) { var val = GetValue <object>(model); instance.Add(val); } CurrentValue = (TValue)instance; } } if (OnSelectedChanged != null) { await OnSelectedChanged.Invoke(Items, item, Value); } }
internal void ChangeSelectedItems(HelperItem[] helperItem) { for (int i = 0; i < helperItem.Length; i++) { helperItem[i].Selected = true; } OnSelectedChanged?.Invoke(helperItem[0]); SelectedItem = helperItem[0]; SelectedItems = helperItem; }
private void SelectedChanged(bool?value) { if (value == Selected) { return; } Selected = value; OnSelectedChanged?.Invoke(Selected); Parent?.ReevaluateSelected(); TreeView.UpdateSelection(Item, Selected); InvokeAsync(StateHasChangedIfNotDisposed); }
private void SelectedAndIndeterminateChanged(bool newSelected, bool newIndeterminate) { if (disposed) { return; } if (newSelected == Selected && newIndeterminate == Indeterminate) { return; } Indeterminate = newIndeterminate; Selected = newSelected; OnSelectedChanged?.Invoke(Selected); Parent?.ReevaluateSelected(); TreeView.UpdateSelection(Item, Selected, Indeterminate); InvokeAsync(StateHasChangedIfNotDisposed); }
/// <summary> /// 点击选择框方法 /// </summary> private async Task OnClick(SelectedItem item) { if (!IsDisabled) { if (typeof(TValue) == typeof(SelectedItem)) { CurrentValue = (TValue)(object)item; } else { CurrentValueAsString = item.Value; } if (OnSelectedChanged != null) { await OnSelectedChanged.Invoke(new SelectedItem[] { item }, Value); } StateHasChanged(); } }
private void RefreshSelectedBulidingData() { OnSelectedChanged.Invoke(this, EventArgs.Empty); }
private void RefreshSelectedObjectType() { OnSelectedChanged?.Invoke(this, EventArgs.Empty); }