- Timestamp:
- 04/13/10 06:41:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs
r3286 r3317 34 34 35 35 #region Properties 36 [Storable] 37 private bool readOnlyView; 38 public bool ReadOnlyView { 39 get { return readOnlyView; } 40 set { 41 if (readOnlyView != value) { 42 readOnlyView = value; 43 OnReadOnlyViewChanged(); 44 OnPropertyChanged("ReadOnlyView"); 45 } 46 } 47 } 48 36 49 public int Capacity { 37 50 get { return list.Capacity; } … … 54 67 public ObservableCollection() { 55 68 list = new List<T>(); 69 readOnlyView = ((ICollection<T>)list).IsReadOnly; 56 70 } 57 71 public ObservableCollection(int capacity) { 58 72 list = new List<T>(capacity); 73 readOnlyView = ((ICollection<T>)list).IsReadOnly; 59 74 } 60 75 public ObservableCollection(IEnumerable<T> collection) { 61 76 list = new List<T>(collection); 77 readOnlyView = ((ICollection<T>)list).IsReadOnly; 62 78 } 63 79 #endregion … … 189 205 #region Events 190 206 [field: NonSerialized] 207 public event EventHandler ReadOnlyViewChanged; 208 protected virtual void OnReadOnlyViewChanged() { 209 EventHandler handler = ReadOnlyViewChanged; 210 if (handler != null) handler(this, EventArgs.Empty); 211 } 212 213 [field: NonSerialized] 191 214 public event CollectionItemsChangedEventHandler<T> ItemsAdded; 192 215 protected virtual void OnItemsAdded(IEnumerable<T> items) { 193 if (ItemsAdded != null)194 ItemsAdded(this, new CollectionItemsChangedEventArgs<T>(items));216 CollectionItemsChangedEventHandler<T> handler = ItemsAdded; 217 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 195 218 } 196 219 … … 198 221 public event CollectionItemsChangedEventHandler<T> ItemsRemoved; 199 222 protected virtual void OnItemsRemoved(IEnumerable<T> items) { 200 if (ItemsRemoved != null)201 ItemsRemoved(this, new CollectionItemsChangedEventArgs<T>(items));223 CollectionItemsChangedEventHandler<T> handler = ItemsRemoved; 224 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 202 225 } 203 226 … … 205 228 public event CollectionItemsChangedEventHandler<T> CollectionReset; 206 229 protected virtual void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) { 207 if (CollectionReset != null)208 CollectionReset(this, new CollectionItemsChangedEventArgs<T>(items, oldItems));230 CollectionItemsChangedEventHandler<T> handler = CollectionReset; 231 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items, oldItems)); 209 232 } 210 233 … … 212 235 public event PropertyChangedEventHandler PropertyChanged; 213 236 protected virtual void OnPropertyChanged(string propertyName) { 214 if (PropertyChanged != null)215 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));237 PropertyChangedEventHandler handler = PropertyChanged; 238 if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 216 239 } 217 240 #endregion
Note: See TracChangeset
for help on using the changeset viewer.