Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当属性值发生更改时,在C#windows窗体中定义事件_C#_Properties - Fatal编程技术网

当属性值发生更改时,在C#windows窗体中定义事件

当属性值发生更改时,在C#windows窗体中定义事件,c#,properties,C#,Properties,我有一个非常基本的类,有1个属性,如下所示: public class NodeItem { private object _Value; public object Value { get { return _Value; } set { _Value = value; } } } 当值属性的值更改时,如何定义事件?下面是一个简单的示例 public event PropertyChangedEventHandler Prop

我有一个非常基本的类,有1个属性,如下所示:

public class NodeItem
{
    private object _Value;

    public object Value
    {
        get { return _Value; }
        set { _Value = value; }
    }
}
属性的值更改时,如何定义事件?

下面是一个简单的示例

public event PropertyChangedEventHandler PropertyChanged;

private object _Value;
public object Value
{
    get { return _value; }
    set
    {
        _value = value;
        // Call OnPropertyChanged whenever the property is updated
        OnPropertyChanged(value);
    }
}


protected void OnPropertyChanged(object val)
{
    PropertyChangedEventHandler handler = PropertyChanged;
    if (handler != null)
    {
        handler(this, new PropertyChangedEventArgs(val));
    }
}

用于订阅事件

void MyEventSubscription(object sender, CustomEventArgs a)  
{  
    // Do something useful here.  
}  

myClassInstance.PropertyChanged += MyEventSubscription;

定义一个事件,并在属性的setter中设置值,如果值已更改,还将触发事件。您可以在
集合{}
中使用多行,非常感谢。我如何在我的代码中使用它呢。