Я пытаюсь реализовать класс для отображения внутренних флагов в флажке, используя 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, чтобы установить новое значение для флага.Можно ли это решить?