在属性更改之前处理事件

本文关键字:处理事件 属性 | 更新日期: 2024-10-19 04:19:35

是否有一个事件处理程序允许我在类的变量更改值之前做一些事情?我只知道INotifyPropertyChanged/OnPropertyChanged,但那是在修改了值之后。

在属性更改之前处理事件

INotifyPropertyChanging示例:

public class AClass : INotifyPropertyChanging
{
    private int aField;
    public int AProperty
    {
        get { return aField; }
        set 
        {
            OnPropertyChanging("AProperty");
            aField = value; 
        }
    }

    private void OnPropertyChanging(string propertyName) 
    {
        PropertyChanging(this, new PropertyChangingEventArgs(propertyName));
    }
    public event PropertyChangingEventHandler PropertyChanging = delegate { };
}
public class MyClass
{
    public event Action NotifyBeforeChanged;
    private int _value;
    public int Value
    {
        get
        {
            return _value;
        }
        set
        {
            NotifyBeforeChanged();
            _value = value;
        }
    }
}