检查一个事件是不是已经存在

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);

【讨论】:

以上是关于检查一个事件是不是已经存在的主要内容,如果未能解决你的问题,请参考以下文章

检查元素上是不是存在事件[重复]

检查rabbitmq中是不是存在指定名称的Exchange

检查python列表中是不是已经存在一个数字

检查 MYSQL 表行中是不是存在特定时间范围

如何检查一个值是不是已经存在以避免重复?

jQuery:检查图像是不是存在