Sometimes we need a List which can notify user when an item is added. Here is the way that you can implement a generic ArrayList which notifies user at the time of an element is added.
using System; using System.Collections; namespace ArchiveData.Logging { // A delegate type for hooking up change notifications. public delegate void ChangedEventHandler(object sender, EventArgs e); public class ListWithChangedEvent : ArrayList { // An event that clients can use to be notified whenever the // elements of the list change. public event ChangedEventHandler Changed; public object NewlyAddedItem { get; set; } // Invoke the Changed event; called whenever list changes protected virtual void OnChanged(EventArgs e) { if (Changed != null) Changed(this, e); } // Override some of the methods that can change the list; // invoke event after each public override int Add(object value) { NewlyAddedItem = value; var i = base.Add(value); OnChanged(EventArgs.Empty); return i; } public override void Clear() { base.Clear(); OnChanged(EventArgs.Empty); } public override object this[int index] { set { base[index] = value; OnChanged(EventArgs.Empty); } } } } |
I got this from MSDN. I feel that it would be helpful to you all too.
Enjoy!
Comments
Post a Comment