Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }