Looking for c# Keywords? Try Ask4Keywords

C# Language Создание отменяемого события


пример

Отменное событие может быть поднято классом, когда он собирается выполнить действие, которое может быть отменено, например событие FormClosing Form .

Чтобы создать такое событие:

  • Создайте новое событие arg from CancelEventArgs и добавьте дополнительные свойства для данных события.
  • Создайте событие, используя EventHandler<T> и используйте созданный вами класс arg нового события cancel.

пример

В приведенном ниже примере мы создаем событие PriceChangingEventArgs для свойства Price для класса. Класс данных события содержит Value которое позволяет потребителю узнать о новом. Событие возникает, когда вы назначаете новое значение для свойства Price и позволяет потребителю знать, что значение меняется, и позволить им отменить событие. Если потребитель отменяет событие, будет использоваться предыдущее значение для Price :

PriceChangingEventArgs

public class PriceChangingEventArgs : CancelEventArgs
{
    int value;
    public int Value
    {
        get { return value; }
    }
    public PriceChangingEventArgs(int value)
    {
        this.value = value;
    }
}

Товар

public class Product
{
    int price;
    public int Price
    {
        get { return price; }
        set
        {
            var e = new PriceChangingEventArgs(value);
            OnPriceChanging(e);
            if (!e.Cancel)
                price = value;
        }
    }

    public event EventHandler<PriceChangingEventArgs> PropertyChanging;
    protected void OnPriceChanging(PriceChangingEventArgs e)
    {
        var handler = PropertyChanging;
        if (handler != null)
            PropertyChanging(this, e);
    }
}