当给定类发生变化时,是否可能触发某些事件?
例如,我有一个类,它有100个字段,其中一个字段在外部或内部被修改。现在我想捕捉此事件。该如何做?
最让我想知道的是是否有技巧可以快速处理非常庞大的类。
作为最佳实践,将您的公共字段转换为手动属性,并使用 INotifyPropertyChanged
接口实现您的 class
,以便触发更改 event
。
编辑:因为您提到了100个字段,我建议您像这个很棒的答案所述那样重构您的代码:用于将 C# 公共字段重构为属性的工具
以下是一个例子:
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));
}
}