Событие на изменение члена класса

188
16 ноября 2017, 01:42

Событие на отслеживание изменения переменной выглядит так:

public bool Flag
{
    get { return _flag; }
    set
    {
        _flag = value;
        if (Flag == true)
        {
            // Собственно событие
        }
    }
}
bool _flag;

Но как сделать так, чтобы событие выполнялось при изменении члена класса, который прописан в Program.cs?

class WarningFlag
    {
        public static bool Alarm = false;
    }

Иными словами, есть класс WarningFlag, есть член класса Alarm. Как будет выглядеть событие, которое будет отслеживать изменение WarningFlag.Alarm?

Answer 1

Создайте в вашем классе событие и вызывайте его при изменении свойства Flag. Примерно так:

    public delegate void MyDelegate();
    public event MyDelegate OnFlagChanged;
    public bool Flag
    {
        get { return _flag; }
        set
        {
            _flag = value;
            if (_flag)
            {
                OnFlagChanged?.Invoke();
            }
        }
    }
    private bool _flag;

Затем в нужных местах (ult-то в тех формах, о которых dds пишете в комментарии) навешайте на него обработчики:

_instance.OnFlagChanged += EventHandler;

где _instance - экземпляр вашего класса, содержащего свойство Flag, а EventHandler - некий метод, обрабатывающий само событие

READ ALSO
Выделение в TextBox с правой стороны

Выделение в TextBox с правой стороны

Текстовое поле с шириной Auto не имеет отступов внутри себя, границы текстового поля подпирают текст, выделить его с правого края крайне неудобноЕсли...

162
Аналог KeyData для Keypress в c#

Аналог KeyData для Keypress в c#

Хочу реализовать возможность движения объекта при зажатии клавишиРанее использовал form keydown, но получается не очень плавно:

295
Добавление UserControl-ов по центру FlowLayoutPanel

Добавление UserControl-ов по центру FlowLayoutPanel

При добавлении UserControl-ов в FlowLayoutPanel, они прижимаются к левому краю

263
Поля подстановки в VisualStudio

Поля подстановки в VisualStudio

создал приложение WindowsForms, подключил базу данных, перетащил таблицы на форму, добавил и привязал BindingNavigatorтак как таблиц много, и все они связаны,...

211