让集合支持事件
来源:互联网 发布:做淘宝的货源从哪里来 编辑:程序博客网 时间:2024/04/29 09:41
不明白为什么集合没有事件(除了几个特殊的集合:比如AutoCompleteStringCollection 类), 要是集合改变时,比如有元素被添加到集合时,集合能通过事件来通知我们该多好啊. 我们来改造集合.
1, 看看CollcetionBase类
注意到Insert方法中的this.OnInsert(index, value)和this.OnInsertComplete(index, value)方法, 这很让人很容易联想到引发事件的On*方法. 那么很简单地, 如果我们将this.OnInsert(index, value)重写为如下形式:
其中的OnElementInserting如下:
而ElementInserting则恰好是我们定义的插入事件
public event EventHandler < CollectionChangeEventArgs > ElementInserting;
这样当有元素插入到集合时则会引发我们的ElementInserting事件
2, 完整的代码(这里只演示了插入元素时的相关事件, 其他事件同理)
运行结果:
- 让集合支持事件
- 让集合支持事件
- 让集合支持事件
- 让canvas 支持事件
- 让范型集合支持事件
- 让C# List 支持事件
- 【转贴】 让C++也来支持事件
- 让IE的OPTION支持click事件
- 让MSflexgrid支持鼠标滚轮事件
- 让 TextView 的事件响应支持 Intent
- 让 TextView 的事件响应支持 Intent
- 让Datagridview支持自定义回车事件
- 让 TextView 的事件响应支持 Intent
- 让Select的option支持双击事件
- 让Select的option支持双击事件
- [Golang]怎么让数据集合支持并发访问?
- 扩展IE WebControls之一:让Toolbar支持客户端事件
- 让minigui的IAL支持鼠标中键滚轮事件
- Snake 活动轮廓
- windows 快捷键
- KalonDaemon - 守护进程PHP版
- SET NOCOUNT ON | OFF
- 在ppt中直接插入视频和图片-通过托拽
- 让集合支持事件
- 冒烟测试和BAT测试
- skype.exe 应用程序错误,该内存不能为“READ”
- IIS 7.x FastCGI 运行 PHP的配置方法
- Ghost 系统的过程
- vimdiff 使用技巧
- 实用windows short cut
- Windows mobile 杀死Skype进程
- 什么是ActiveX插件