protected void ChangeStatus(ChangeEventArgs uIMouseEvent) { if (IsDisabled) { return; } var oldValue = new CheckBoxValue() { Status = Status }; var newValue = new CheckBoxValue(); switch (Status) { case Status.UnChecked: newValue.Status = Status.Checked; break; case Status.Checked: newValue.Status = Status.UnChecked; break; case Status.Indeterminate: newValue.Status = Status.Checked; break; } if (newValue.Status == Status.Checked) { CheckBoxGroup?.SelectedItems?.Add(Value); Value = originValue; } else { CheckBoxGroup?.SelectedItems?.Remove(Value); Value = default; } Status = newValue.Status; //有 CheckBoxGroup 时,视整个CheckBoxGroup为一个字段 if (CheckBoxGroup == null) { SetFieldValue(Value); } if (ValueChanged.HasDelegate) { _ = ValueChanged.InvokeAsync(Value); } if (StatusChanged.HasDelegate) { var args = new BChangeEventArgs <CheckBoxValue>(); args.OldValue = oldValue; args.NewValue = newValue; _ = StatusChanged.InvokeAsync(newValue.Status); } }
protected void ChangeStatus(ChangeEventArgs uIMouseEvent) { if (IsDisabled) { return; } var newValue = new CheckBoxValue(); switch (Status) { case Status.UnChecked: newValue.Status = Status.Checked; break; case Status.Checked: newValue.Status = Status.UnChecked; break; case Status.Indeterminate: newValue.Status = Status.Checked; break; } var checkBoxValue = Value; if (newValue.Status == Status.Checked) { CheckBoxGroup?.SelectedItems?.Add(Value); } else { CheckBoxGroup?.SelectedItems?.Remove(Value); checkBoxValue = default; } Status = newValue.Status; //有 CheckBoxGroup 时,视整个CheckBoxGroup为一个字段 if (CheckBoxGroup == null) { SetFieldValue(checkBoxValue, true); } RequireRender = true; if (ValueChanged.HasDelegate) { _ = ValueChanged.InvokeAsync(checkBoxValue); } if (StatusChanged.HasDelegate) { _ = StatusChanged.InvokeAsync(newValue.Status); } }