Показать флаг в CheckBox с TwoWayBinding и неявным оператором - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь реализовать класс для отображения внутренних флагов в флажке, используя DataBinding.Для двухстороннего связывания мне нужно реализовать интерфейс INotifyPropertyChanged.Поэтому я написал класс:

public class Flag : INotifyPropertyChanged
    {
        private bool _value;

        public bool Value
        {
            get { return _value; }
            set
            {
                _value = value;
                OnPropertyChanged();
            }
        }

        public Flag(bool value)
        {
            Value = value;
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        public static implicit operator bool(Flag flag)
        {
            return flag.Value;
        }

        public static implicit operator Flag(bool value)
        {
            return new Flag(value);
        }

И связал его так:

    private Flag testFlag1;
    private Flag testFlag2;

        checkBox3.DataBindings.Add("Checked", testFlag1, "Value");
        checkBox4.DataBindings.Add("Checked", testFlag2, "Value");

Но это не работает с неявным оператором, который возвращает новый объект класса, и япотерять привязку.Я не хочу писать каждый раз, когда testFlag.Value = true, чтобы установить новое значение для флага.Можно ли это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...