【问题标题】:Define an event in C# windows form when a property has changed value [duplicate]当属性更改值时,在 C# Windows 窗体中定义事件[重复]
【发布时间】:2019-05-19 03:34:21
【问题描述】:

我有一个非常基本的类,它有 1 个这样的属性:

public class NodeItem
{
    private object _Value;

    public object Value
    {
        get { return _Value; }
        set { _Value = value; }
    }
}

Value 属性的值发生变化时,如何定义事件?

【问题讨论】:

  • 定义一个事件并在属性的设置器中设置值并在值发生更改时触发事件。你可以在set {}中使用多行

标签: c# properties


【解决方案1】:

这是一个简单的例子

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));
    }
}

Reference

用于订阅事件

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

myClassInstance.PropertyChanged += MyEventSubscription;

【讨论】:

  • 非常感谢。以及如何在我的代码中使用它。
猜你喜欢
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2017-03-20
  • 1970-01-01
  • 2011-06-23
  • 2011-09-03
  • 1970-01-01
相关资源
最近更新 更多