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