如何处理添加到列表中的事件? [英] How to handle add to list event?

查看:90
本文介绍了如何处理添加到列表中的事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样一个列表:

List<Controls> list = new List<Controls>

如何处理增加新的位置,这个名单?

How to handle adding new position to this list?

当我做的:

myObject.myList.Add(new Control());

我愿做这样的事情在我的对象:

I would like to do something like this in my object:

myList.AddingEvent += HandleAddingEvent

然后在我的 HandleAddingEvent 委托处理位置添加到这个列表。我应该如何手柄增加新位置事件?我怎样才能让这个事件是否可用?

And then in my HandleAddingEvent delegate handling adding position to this list. How should I handle adding new position event? How can I make this event available?

推荐答案

您可以从列表中继承,并添加自己的处理程序,像

You could inherit from List and add your own handler, something like

using System;
using System.Collections.Generic;

namespace test {
    class Program {

        class MyList<T> : List<T> {

            public event EventHandler OnAdd;

            public void Add(T item) {
                if (null != OnAdd) {
                    OnAdd(this, null);
                }
                base.Add(item);
            }

        }

        static void Main(string[] args) {
            MyList<int> l = new MyList<int>();
            l.OnAdd += new EventHandler(l_OnAdd);
            l.Add(1);
        }

        static void l_OnAdd(object sender, EventArgs e) {
            Console.WriteLine("Element added...");
        }
    }
}

要知道,你也应该重新实现的AddRange ,如果你想知道已添加了什么等等,这只是一个基本的声明自己的事件类型主意...

Be aware that you should also re-implement AddRange, declare your own event type if you want to know what has been added and so on, this is just a basic idea...

这篇关于如何处理添加到列表中的事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆