清单上的火灾属性

时间:2018-09-15 08:18:57

标签: c#

正如标题所述,propertyList.Add(something)时我如何解雇财产

所以代码是:

private List<string> _SomeStrings;

public List<string> SomeStrings
{
    get
    {
        return _SomeStrings;
    }
    set
    {
        _SomeStrings = value;
    }
    odAdd //this is what I need but do not know how to do it
}

3 个答案:

答案 0 :(得分:1)

您可以使用诸如ObservableCollection之类的内置类型。示例herehereMSDN页。

您还可以创建一个新的类,该类从List派生,并重载要挂接的函数。

class ListWithAdd<T> : List<T>
{
    public new void Add(T item)
    {
        base.Add(item);
        DoStuff();
    }
}

答案 1 :(得分:0)

创建自定义通用列表,创建一个事件,当在列表中添加项目时将触发该事件。

像这样:

namespace ConsoleApplication2
{
    public delegate void OnAddEventHandler(object item);

    public class AddEventArgs : EventArgs
    {
        public object item { get; set; }
    }

    public class MyList<T> : List<T>
    {
        public event OnAddEventHandler OnAdd;
        public new void Add(T item)
        {
            base.Add(item);
            if (OnAdd != null)
            {
                OnAdd(item);
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyList<string> lst = new MyList<string>();
            lst.OnAdd += (item) => {
                Console.WriteLine("new item added: " + item);
            };
            lst.Add("test");

            Console.ReadLine();
        }
    }
}

这是为您准备的小提琴:https://dotnetfiddle.net/tc5Mq1

答案 2 :(得分:-1)