Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        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);
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
    /// <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);
 }
Exemplo n.º 8
0
 private void RefreshSelectedObjectType()
 {
     OnSelectedChanged?.Invoke(this, EventArgs.Empty);
 }