控件类CodonListPanel中有:
Addin currentAddin = null;
public event EventHandler CurrentAddinChanged;
protected virtual void OnCurrentAddinChanged(EventArgs e)
{
if (CurrentAddinChanged != null) {
CurrentAddinChanged(this, e);
}
}
在填充currentAddin 时,比如
set {
currentAddin = value;
this.OnCurrentAddinChanged(EventArgs.Empty);
}
通过方法OnCurrentAddinChanged将事件在事件发生时交给委托,
然后在用到CodonListPanel的时候(此处在AddinScoutViewContent类中),比如实例化一个CodonListPanel codonListPanel,
codonListPanel.CurrentAddinChanged += new EventHandler(CodonListPanelCurrentAddinChanged);//给委托赋值,通过委托(此处是codonListPanel.CurrentAddinChanged)把事件(具体的动作)和处理事件的方法(此处为CodonListPanelCurrentAddinChanged)关联,将事件和事件处理程序通过委托关联起来
void CodonListPanelCurrentAddinChanged(object sender, EventArgs e)
{//具体处理逻辑
addInDetailsPanel.ShowAddinDetails(codonListPanel.CurrentAddin);
}