2012-04-09 58 views
2

我有下面的類:做一些操作後插入到表

public class FirstClass 
{ 
    public FirstClass() 
    { 
     list = new List<SomeType>(); 
    } 

    public List<SomeType> list; 
} 

這是可以做到像火不同的方法,一些動作之後會有人把元素成列表?

+0

您刪除了關於在C#中創建變量的問題。但僅供參考,我之前問了一個類似的問題的好奇心:http://stackoverflow.com/questions/7478833/is-it-possible-to-create-variables-at-runtime-in-java它是在Java中,但大多數答案也適用於C#。 – NullUserException 2012-04-11 19:39:21

回答

2

List不爲此公開任何事件。您應該考慮使用ObservableCollection。它具有CollectionChanged事件,該事件在添加,刪除,更改,移動或刷新整個列表時發生。

1

,你可以這樣做

 private List<SomeType> _list; 

     public void AddToList(SomeType item) 
    { 
     _list.Add(item); 
     SomeOtherMethod(); 
    } 

     public ReadOnlyCollection<SomeType> MyList 
    { 
     get { return _list.AsReadOnly(); } 
} 

但的ObservableCollection是最好的。

0

如果您創建自己的IList實現,則可以在項目添加到列表中時調用方法(或者執行任何其他您想要的操作)。創建自IList繼承的類,並有一個私人會員類型T的名單使用您的私有成員實現每個接口的方法和修改添加(T項)調用,無論你需要做的

代碼:

public class MyList<T> : IList<T> 
{ 
    private List<T> _myList = new List<T>(); 

     public IEnumerator<T> GetEnumerator() { return _myList.GetEnumerator(); } 
     public void Clear() { _myList.Clear(); } 
     public bool Contains(T item) { return _myList.Contains(item); } 

     public void Add(T item) 
     { 
      _myList.Add(item); 
      // Call your methods here 
     } 

     // ...implement the rest of the IList<T> interface using _myList 
    }