我有一個類有一個事件,假設每次觸發它的一個屬性更改。來自一個自定義的用戶控件中的類的C#事件永遠不會觸發
public event EventHandler StructureChanged;
protected virtual void NotifyStructureChanged(EventArgs e)
{
if (StructureChanged != null)
{
StructureChanged(this, e);
}
}
我在我的屬性中包含NotifyStructureChanged(new EventArgs());
在我的設置語句中。每當它調用方法StructureChanged
始終爲空時。我的班級是一個自定義的用戶控件的私有成員和類事件被註冊在用戶控件的構造函數,像這樣
_pt.StructureChanged += _pt_StructureChanged;
,並在這裏處理
void _pt_StructureChanged(object sender, EventArgs e)
{
UpdateControl();
}
我至今是自定義類,其中包含自定義用戶控件的私有成員。我在自定義用戶控件中註冊我的類事件。每當類屬性發生變化時,我都會更新控件以反映類中的更改。
我在這裏做錯了什麼?我在我的用戶控件上有一個按鈕,並且能夠註冊該事件,爲什麼我不能註冊我的課程活動?
作爲一個側面說明,你需要做的'StructureChanged處理器= StructureChanged;'和'檢查爲handler''null'。否則,在多線程情況下會有一個競爭條件導致'NullReferenceException'。 –