Changeset 2932 for trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs
- Timestamp:
- 03/05/10 03:07:12 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs
r2852 r2932 32 32 [Item("ItemCollection<T>", "Represents a collection of items.")] 33 33 public class ItemCollection<T> : ObservableCollection<T>, IItem where T : class, IItem { 34 [Storable(Name = "RestoreEvents")]35 private object RestoreEvents {36 get { return null; }37 set {38 foreach (T item in this)39 if (item != null) item.Changed += new ChangedEventHandler(Item_Changed);40 }41 }42 43 34 public virtual string ItemName { 44 35 get { return ItemAttribute.GetName(this.GetType()); } … … 53 44 public ItemCollection() : base() { } 54 45 public ItemCollection(int capacity) : base(capacity) { } 55 public ItemCollection(IEnumerable<T> collection) : base(collection) { 56 foreach (T item in this) 57 if (item != null) item.Changed += new ChangedEventHandler(Item_Changed); 58 } 46 public ItemCollection(IEnumerable<T> collection) : base(collection) { } 59 47 60 48 public object Clone() { … … 72 60 } 73 61 74 public event ChangedEventHandler Changed; 75 protected void OnChanged() { 76 OnChanged(new ChangedEventArgs()); 77 } 78 protected virtual void OnChanged(ChangedEventArgs e) { 79 if ((e.RegisterChangedObject(this)) && (Changed != null)) 80 Changed(this, e); 81 } 82 83 protected override void OnItemsAdded(IEnumerable<T> items) { 84 foreach (T item in items) 85 if (item != null) item.Changed += new ChangedEventHandler(Item_Changed); 86 base.OnItemsAdded(items); 87 } 88 protected override void OnItemsRemoved(IEnumerable<T> items) { 89 foreach (T item in items) 90 if (item != null) item.Changed -= new ChangedEventHandler(Item_Changed); 91 base.OnItemsRemoved(items); 92 } 93 protected override void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) { 94 foreach (T oldItem in oldItems) 95 if (oldItem != null) oldItem.Changed -= new ChangedEventHandler(Item_Changed); 96 foreach (T item in items) 97 if (item != null) item.Changed += new ChangedEventHandler(Item_Changed); 98 base.OnCollectionReset(items, oldItems); 99 } 100 protected override void OnPropertyChanged(string propertyName) { 101 base.OnPropertyChanged(propertyName); 102 OnChanged(); 103 } 104 105 private void Item_Changed(object sender, ChangedEventArgs e) { 106 OnChanged(e); 62 public event EventHandler ToStringChanged; 63 protected virtual void OnToStringChanged() { 64 if (ToStringChanged != null) 65 ToStringChanged(this, EventArgs.Empty); 107 66 } 108 67 }
Note: See TracChangeset
for help on using the changeset viewer.