如果需要集合中的元素何時刪除或添加的信息,可以使用ObservableCollection<T>類。這個類是為WPF定義的,這樣UI就可以得知集合的變化。這個類在程式集WindowsBase中定義,需要引用這個程式集。 ObservableCollection<T>類派生自Collection<T> ...
如果需要集合中的元素何時刪除或添加的信息,可以使用ObservableCollection<T>類。這個類是為WPF定義的,這樣UI就可以得知集合的變化。這個類在程式集WindowsBase中定義,需要引用這個程式集。
ObservableCollection<T>類派生自Collection<T>基類,該基類可用於創建自定義集合,併在內部使用List<T>類。重寫基類的虛方法SetItem()和RemoveItem(),以觸發CollectionChanged事件。
static void Main() { var data = new ObservableCollection<string>(); data.CollectionChanged += Data_CollectionChanged; data.Add("One"); data.Add("Two"); data.Insert(1, "Three"); data.Remove("One"); } static void Data_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { Console.WriteLine("action: {0}", e.Action.ToString()); if (e.OldItems != null) { Console.WriteLine("starting index for old item(s): {0}", e.OldStartingIndex); Console.WriteLine("old item(s):"); foreach (var item in e.OldItems) { Console.WriteLine(item); } } if (e.NewItems != null) { Console.WriteLine("starting index for new item(s): {0}", e.NewStartingIndex); Console.WriteLine("new item(s): "); foreach (var item in e.NewItems) { Console.WriteLine(item); } } Console.WriteLine(); }