private async Task TriggerSelectedItemChanged() { if (OnSelectedItemsChanged != null) { await OnSelectedItemsChanged.Invoke(SelectedItems); } }
/// <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(); } } }