检查一个事件是不是已经存在
Posted
技术标签:
【中文标题】检查一个事件是不是已经存在【英文标题】:Check if an event already exists检查一个事件是否已经存在 【发布时间】:2011-04-17 13:21:49 【问题描述】:我有一个数据网格加载行事件
_gridObj.LoadingRow += new EventHandler<DataGridRowEventArgs>(_gridObj_LoadingRow);
在处理程序中,我正在创建另一个事件。在下面的代码中,我如何知道该行是否已经存在 MouseLeftBtn 事件?
void _gridObj_LoadingRow(object sender, DataGridRowEventArgs e)
e.Row.MouseLeftButtonUp += new MouseButtonEventHandler(Row_MouseLeftButtonUp);
谢谢,
巫毒
【问题讨论】:
您想测试是否附加了一个事件处理程序,这样您就不会附加多个事件?即 LoadingRow 事件可能每行触发多次? 是的,在_gridObj_LoadingRow
中,MouseLeftButtonUp
事件被多次附加。我想检查MouseLeftButtonUp
事件是否已经附加,所以我没有为它注册另一个事件。在我这里,它会多次触发MouseLeftButtonUp
。
好的,我已经添加了一个应该满足您要求的答案。
【参考方案1】:
根据您在这种情况下不想附加多个处理程序的评论,我取消订阅然后重新订阅。如果不存在,它不会给出取消订阅的错误,并确保只有一个处理程序。
void _gridObj_LoadingRow(object sender, DataGridRowEventArgs e)
e.Row.MouseLeftButtonUp -= new MouseButtonEventHandler(Row_MouseLeftButtonUp);
e.Row.MouseLeftButtonUp += new MouseButtonEventHandler(Row_MouseLeftButtonUp);
【讨论】:
以上是关于检查一个事件是不是已经存在的主要内容,如果未能解决你的问题,请参考以下文章