7

当给定类中的某些内容发生变化时,是否可以触发某些事件?

例如,我有一个具有100字段的类,其中一个正在外部或内部进行修改。现在我想赶上这个事件。这个怎么做?

我最想知道是否有一个技巧可以快速完成真正扩展的课程。

4

1 回答 1

13

作为最佳实践,将您的公共字段转换为手动属性并使用 来实现您classINotifyPropertyChanged interface更改event

编辑:因为您提到了 100 个字段,我建议您像在这个很好的答案中那样重构您的代码:Tools for refactoring C# public fields into properties

这是一个例子:

private string _customerNameValue = String.Empty;
public string CustomerName
{
    get
    {
        return this._customerNameValue;
    }

    set
    {
        if (value != this._customerNameValue)
        {
            this._customerNameValue = value;
            NotifyPropertyChanged();
        }
    }
}
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
    if (PropertyChanged != null)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}

看看这个:INotifyPropertyChanged 接口

于 2013-04-15T14:23:51.687 回答