2

我有一个属性,比如说MyList,那是 Type List<int>

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

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

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但想知道是否有人有更好的主意?

4

3 回答 3

8

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

于 2013-05-29T09:10:56.167 回答
2

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

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

于 2013-05-29T09:11:28.280 回答
2

你可以很容易地做到这一点ObservableCollection。它也有特殊的构造函数List

public ObservableCollection(
      List<T> collection
)

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

于 2013-05-29T09:14:50.983 回答