我有下面的類:做一些操作後插入到表
public class FirstClass
{
public FirstClass()
{
list = new List<SomeType>();
}
public List<SomeType> list;
}
這是可以做到像火不同的方法,一些動作之後會有人把元素成列表?
我有下面的類:做一些操作後插入到表
public class FirstClass
{
public FirstClass()
{
list = new List<SomeType>();
}
public List<SomeType> list;
}
這是可以做到像火不同的方法,一些動作之後會有人把元素成列表?
您應該使用ObservableCollection<SomeType>
代替。
ObservableCollection<T>
提供您可以訂閱的CollectionChanged
事件 - CollectionChanged
事件在添加,刪除,更改,移動項目或刷新整個列表時觸發。
List
不爲此公開任何事件。您應該考慮使用ObservableCollection
。它具有CollectionChanged
事件,該事件在添加,刪除,更改,移動或刷新整個列表時發生。
也許你應該使用ObservableCollection<T>
。它會在添加或刪除項目或幾個其他事件時觸發事件。
這裏是DOC:http://msdn.microsoft.com/en-us/library/ms668604.aspx
,你可以這樣做
private List<SomeType> _list;
public void AddToList(SomeType item)
{
_list.Add(item);
SomeOtherMethod();
}
public ReadOnlyCollection<SomeType> MyList
{
get { return _list.AsReadOnly(); }
}
但的ObservableCollection是最好的。
如果您創建自己的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
}
您刪除了關於在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