List <t>的C#OnAdd / OnRemove / OnModified事件。<some action =“”>(objT)</some> </t>

时间:2013-05-29 09:09:46

标签: c# .net events c#-4.0

我有一个属性,比如说MyList,属于List<int>类型。

在属性的set子句中,执行其他一些逻辑。

我想在修改List时执行相同的逻辑。

public class MyType
{
    public List<int> MyList
    {
        get { return _MyList; }
        set
        {
            listUpdate(); 
            _MyList = value; 
        }
    }
    private List<int> _MyList

    private void listUpdate()
    {
        // Do something... 
    }
}

我知道我可以创建自己继承自List<T>的类,并覆盖修改List的所有方法,但是想知道是否有人有更好的想法?

3 个答案:

答案 0 :(得分:8)

是的,我有一个更好的主意。使用ObservableCollection<T>
它完全是为了您的目的而创建的。您要订阅的活动是CollectionChanged。它被要求进行所有更改。

答案 1 :(得分:2)

您可以考虑使用ObservableCollection来提供修改通知:

  

表示动态数据集合,在添加,删除项目或刷新整个列表时提供通知。

答案 2 :(得分:2)

您可以使用ObservableCollection轻松完成。它还有List的特殊构造函数:

public ObservableCollection(
      List<T> collection
)

您可以在那里阅读:http://msdn.microsoft.com/en-us/library/ms653202.aspx