private async Task TriggerSelectedItemChanged()
 {
     if (OnSelectedItemsChanged != null)
     {
         await OnSelectedItemsChanged.Invoke(SelectedItems);
     }
 }
예제 #2
0
        /// <summary>
        /// 选中数据移动方法
        /// </summary>
        private async Task TransferItems(List <SelectedItem> source, List <SelectedItem> target)
        {
            if (!IsDisabled && Items != null)
            {
                var items = source.Where(i => i.Active).ToList();
                source.RemoveAll(i => items.Contains(i));
                target.AddRange(items);

                LeftItems.ForEach(i =>
                {
                    var item = Items.FirstOrDefault(item => item.Value == i.Value && item.Text == i.Text && item.GroupName == i.GroupName);
                    if (item != null)
                    {
                        item.Active = false;
                    }
                });
                RightItems.ForEach(i =>
                {
                    var item = Items.FirstOrDefault(item => item.Value == i.Value && item.Text == i.Text && item.GroupName == i.GroupName);
                    if (item != null)
                    {
                        item.Active = true;
                    }
                });

                Value = default;
                CurrentValueAsString = string.Join(",", RightItems.Select(i => i.Value));

                if (OnSelectedItemsChanged != null)
                {
                    await OnSelectedItemsChanged.Invoke(RightItems);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected async Task OnStateChanged(CheckboxState state, SelectedItem item)
        {
            // trigger when transfer item clicked
            item.Active = state == CheckboxState.Checked;

            // set header
            if (OnSelectedItemsChanged != null)
            {
                await OnSelectedItemsChanged.Invoke();
            }
        }
 /// <summary>
 /// 左侧头部复选框初始化值方法
 /// </summary>
 protected async Task OnHeaderCheck(CheckboxState state, SelectedItem item)
 {
     if (Items != null)
     {
         if (state == CheckboxState.Checked)
         {
             Items.ToList().ForEach(i => i.Active = true);
         }
         else
         {
             Items.ToList().ForEach(i => i.Active = false);
         }
         if (OnSelectedItemsChanged != null)
         {
             await OnSelectedItemsChanged.Invoke();
         }
     }
 }