/// <summary>
        /// OnParametersSetAsync 方法
        /// </summary>
        /// <returns></returns>
        protected override async Task OnParametersSetAsync()
        {
            await base.OnParametersSetAsync();

            // 通过 Value 对集合进行赋值
            if (!string.IsNullOrEmpty(CurrentValueAsString))
            {
                var list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in Items)
                {
                    item.Active = false;
                    var v = item.Value;
                    if (!string.IsNullOrEmpty(v))
                    {
                        foreach (var l in list)
                        {
                            if (v == l.ToString())
                            {
                                item.Active = true;
                                break;
                            }
                        }
                    }
                }
            }
        }
Beispiel #2
0
    /// <summary>
    /// OnParametersSet 方法
    /// </summary>
    protected override void OnParametersSet()
    {
        base.OnParametersSet();

        LeftPanelText ??= Localizer[nameof(LeftPanelText)];
        RightPanelText ??= Localizer[nameof(RightPanelText)];

        var list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);

        LeftItems.Clear();
        RightItems.Clear();

        Items ??= Enumerable.Empty <SelectedItem>();

        // 左侧移除
        LeftItems.AddRange(Items);
        LeftItems.RemoveAll(i => list.Any(l => l == i.Value));

        // 右侧插入
        foreach (var t in list)
        {
            var item = Items.FirstOrDefault(i => i.Value == t);
            if (item != null)
            {
                RightItems.Add(item);
            }
        }
    }
        /// <summary>
        /// OnInitialized 方法
        /// </summary>
        protected override void OnInitialized()
        {
            base.OnInitialized();

            PlaceHolder ??= Localizer[nameof(PlaceHolder)];
            SelectAllText ??= Localizer[nameof(SelectAllText)];
            ReverseSelectText ??= Localizer[nameof(ReverseSelectText)];
            ClearText ??= Localizer[nameof(ClearText)];

            // 通过 Value 对集合进行赋值
            if (Value != null)
            {
                var   typeValue = typeof(TValue);
                IList?list      = null;
                if (typeValue == typeof(string))
                {
                    list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
                }
                else if (typeValue.IsGenericType)
                {
                    var t        = typeValue.GenericTypeArguments;
                    var instance = Activator.CreateInstance(typeof(List <>).MakeGenericType(t));
                    var mi       = instance.GetType().GetMethod("AddRange");
                    if (mi != null)
                    {
                        mi.Invoke(instance, new object[] { Value });
                    }

                    list = instance as IList;
                }
                if (list != null && Items != null)
                {
                    foreach (var item in Items)
                    {
                        var v = item.Value;
                        if (!string.IsNullOrEmpty(v))
                        {
                            foreach (var l in list)
                            {
                                if (v == l.ToString())
                                {
                                    SelectedItems.Add(item);
                                    break;
                                }
                            }
                        }
                    }
                }
            }

            if (OnSearchTextChanged == null && Items != null)
            {
                OnSearchTextChanged = text => Items.Where(i => i.Text.Contains(text, StringComparison.OrdinalIgnoreCase));
            }
        }
        /// <summary>
        /// OnParametersSetAsync 方法
        /// </summary>
        /// <returns></returns>
        protected override async Task OnParametersSetAsync()
        {
            await base.OnParametersSetAsync();

            // 通过 Value 对集合进行赋值
            if (Value != null)
            {
                if (_oldStringValue == CurrentValueAsString)
                {
                    return;
                }

                var   typeValue = typeof(TValue);
                IList?list      = null;
                if (typeValue == typeof(string))
                {
                    list            = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
                    _oldStringValue = CurrentValueAsString;
                }
                else if (typeValue.IsGenericType)
                {
                    var t        = typeValue.GenericTypeArguments;
                    var instance = Activator.CreateInstance(typeof(List <>).MakeGenericType(t)) !;
                    var mi       = instance.GetType().GetMethod("AddRange");
                    if (mi != null)
                    {
                        mi.Invoke(instance, new object[] { Value });
                    }

                    list            = instance as IList;
                    _oldStringValue = string.Join(",", list);
                }
                if (list != null)
                {
                    SelectedItems.Clear();
                    foreach (var item in Items)
                    {
                        var v = item.Value;
                        if (!string.IsNullOrEmpty(v))
                        {
                            foreach (var l in list)
                            {
                                if (v == l.ToString())
                                {
                                    SelectedItems.Add(item);
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
    /// <summary>
    /// OnParametersSetAsync 方法
    /// </summary>
    /// <returns></returns>
    protected override async Task OnParametersSetAsync()
    {
        await base.OnParametersSetAsync();

        // 通过 Value 对集合进行赋值
        var list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);

        foreach (var item in Items)
        {
            item.Active = list.Any(i => i.Equals(item.Value, StringComparison.OrdinalIgnoreCase));
        }
    }
        /// <summary>
        /// OnInitialized 方法
        /// </summary>
        protected override void OnInitialized()
        {
            base.OnInitialized();

            // 通过 Value 对集合进行赋值
            if (Value != null)
            {
                var   typeValue = typeof(TValue);
                IList?list      = null;
                if (typeValue == typeof(string))
                {
                    list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
                }
                else if (typeValue.IsGenericType)
                {
                    var t        = typeValue.GenericTypeArguments;
                    var instance = Activator.CreateInstance(typeof(List <>).MakeGenericType(t));
                    if (instance != null)
                    {
                        var mi = instance.GetType().GetMethod("AddRange");
                        if (mi != null)
                        {
                            mi.Invoke(instance, new object[] { Value });
                        }
                        list = instance as IList;
                    }
                }
                if (list != null)
                {
                    foreach (var model in Items)
                    {
                        SetValue(model, false);
                        var v = GetValue <object>(model)?.ToString() ?? "";
                        if (!string.IsNullOrEmpty(v))
                        {
                            foreach (var item in list)
                            {
                                if (v == item.ToString())
                                {
                                    SetValue(model, true);
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #7
0
        private async Task OnBlurAsync()
        {
            _focused = false;
            if (_inputString == null)
            {
                await ChangeValueAsync(Value);

                return;
            }

            if (!CurrentValueAsString.Equals(_inputString))
            {
                CurrentValueAsString = _inputString;
            }

            _inputString = null;
        }
Beispiel #8
0
        /// <summary>
        /// OnParametersSet 方法
        /// </summary>
        protected override void OnParametersSet()
        {
            base.OnParametersSet();

            // 通过 Value 对集合进行赋值
            if (Items != null && !string.IsNullOrEmpty(CurrentValueAsString))
            {
                Items = Items.ToList();
                var list = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in Items)
                {
                    item.Active = list.Any(i => i.Contains(item.Value, StringComparison.OrdinalIgnoreCase));
                }
            }

            ResetItems();
        }
Beispiel #9
0
 private void InitValue()
 {
     // 通过 Value 对集合进行赋值
     if (Value != null)
     {
         var         typeValue = typeof(TValue);
         IEnumerable?list      = null;
         if (typeValue == typeof(string))
         {
             var values = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
             foreach (var item in Items)
             {
                 item.Active = values.Any(v => v.Equals(item.Value, StringComparison.OrdinalIgnoreCase));
             }
             list = values;
         }
         else if (typeValue.IsGenericType)
         {
             var t        = typeValue.GenericTypeArguments;
             var instance = Activator.CreateInstance(typeof(List <>).MakeGenericType(t));
             if (instance != null)
             {
                 var mi = instance.GetType().GetMethod("AddRange");
                 if (mi != null)
                 {
                     mi.Invoke(instance, new object[] { Value });
                 }
                 list = instance as IEnumerable;
                 foreach (var item in Items)
                 {
                     item.Active = false;
                     foreach (var v in list !)
                     {
                         item.Active = item.Value.Equals(v !.ToString(), StringComparison.OrdinalIgnoreCase);
                         if (item.Active)
                         {
                             break;
                         }
                     }
                 }
             }
         }
     }
 }
    /// <summary>
    /// OnParametersSet 方法
    /// </summary>
    protected override void OnParametersSet()
    {
        base.OnParametersSet();

        var ipSegments = CurrentValueAsString.Split(".", System.StringSplitOptions.RemoveEmptyEntries);

        if (ipSegments.Length == 4)
        {
            Value1 = ipSegments[0];
            Value2 = ipSegments[1];
            Value3 = ipSegments[2];
            Value4 = ipSegments[3];
        }
        else
        {
            Value1 = "0";
            Value2 = "0";
            Value3 = "0";
            Value4 = "0";
        }
        UpdateValue();
    }
Beispiel #11
0
 private void InitValue()
 {
     // 通过 Value 对集合进行赋值
     if (Value != null)
     {
         var         typeValue = typeof(TValue);
         IEnumerable?list      = null;
         if (typeValue == typeof(string))
         {
             var values = CurrentValueAsString.Split(',', StringSplitOptions.RemoveEmptyEntries);
             foreach (var item in Items)
             {
                 item.Active = values.Any(v => v.Equals(item.Value, StringComparison.OrdinalIgnoreCase));
             }
             list = values;
         }
         else if (typeValue.IsGenericType)
         {
             ProcessGenericItems(typeValue, list);
         }
     }
 }