- Timestamp:
- 04/13/10 06:41:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Collections/3.3/ObservableList.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; } … … 68 81 public ObservableList() { 69 82 list = new List<T>(); 83 readOnlyView = ((ICollection<T>)list).IsReadOnly; 70 84 } 71 85 public ObservableList(int capacity) { 72 86 list = new List<T>(capacity); 87 readOnlyView = ((ICollection<T>)list).IsReadOnly; 73 88 } 74 89 public ObservableList(IEnumerable<T> collection) { 75 90 list = new List<T>(collection); 91 readOnlyView = ((ICollection<T>)list).IsReadOnly; 76 92 } 77 93 #endregion … … 375 391 #region Events 376 392 [field: NonSerialized] 393 public event EventHandler ReadOnlyViewChanged; 394 protected virtual void OnReadOnlyViewChanged() { 395 EventHandler handler = ReadOnlyViewChanged; 396 if (handler != null) handler(this, EventArgs.Empty); 397 } 398 399 [field: NonSerialized] 377 400 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsAdded; 378 401 protected virtual void OnItemsAdded(IEnumerable<IndexedItem<T>> items) { 379 if (ItemsAdded != null)380 ItemsAdded(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items));402 CollectionItemsChangedEventHandler<IndexedItem<T>> handler = ItemsAdded; 403 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items)); 381 404 } 382 405 … … 388 411 } 389 412 private void OnItemsAdded(IEnumerable<T> items) { 390 if (itemsAdded != null)391 itemsAdded(this, new CollectionItemsChangedEventArgs<T>(items));413 CollectionItemsChangedEventHandler<T> handler = itemsAdded; 414 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 392 415 } 393 416 … … 395 418 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsRemoved; 396 419 protected virtual void OnItemsRemoved(IEnumerable<IndexedItem<T>> items) { 397 if (ItemsRemoved != null)398 ItemsRemoved(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items));420 CollectionItemsChangedEventHandler<IndexedItem<T>> handler = ItemsRemoved; 421 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items)); 399 422 } 400 423 … … 406 429 } 407 430 private void OnItemsRemoved(IEnumerable<T> items) { 408 if (itemsRemoved != null)409 itemsRemoved(this, new CollectionItemsChangedEventArgs<T>(items));431 CollectionItemsChangedEventHandler<T> handler = itemsRemoved; 432 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 410 433 } 411 434 … … 413 436 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced; 414 437 protected virtual void OnItemsReplaced(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) { 415 if (ItemsReplaced != null)416 ItemsReplaced(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems));438 CollectionItemsChangedEventHandler<IndexedItem<T>> handler = ItemsReplaced; 439 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems)); 417 440 } 418 441 … … 420 443 public event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsMoved; 421 444 protected virtual void OnItemsMoved(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) { 422 if (ItemsMoved != null)423 ItemsMoved(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems));445 CollectionItemsChangedEventHandler<IndexedItem<T>> handler = ItemsMoved; 446 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems)); 424 447 } 425 448 … … 427 450 public event CollectionItemsChangedEventHandler<IndexedItem<T>> CollectionReset; 428 451 protected virtual void OnCollectionReset(IEnumerable<IndexedItem<T>> items, IEnumerable<IndexedItem<T>> oldItems) { 429 if (CollectionReset != null)430 CollectionReset(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems));452 CollectionItemsChangedEventHandler<IndexedItem<T>> handler = CollectionReset; 453 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<IndexedItem<T>>(items, oldItems)); 431 454 } 432 455 … … 438 461 } 439 462 private void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) { 440 if (collectionReset != null)441 collectionReset(this, new CollectionItemsChangedEventArgs<T>(items, oldItems));463 CollectionItemsChangedEventHandler<T> handler = collectionReset; 464 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items, oldItems)); 442 465 } 443 466 … … 445 468 public event PropertyChangedEventHandler PropertyChanged; 446 469 protected virtual void OnPropertyChanged(string propertyName) { 447 if (PropertyChanged != null)448 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));470 PropertyChangedEventHandler handler = PropertyChanged; 471 if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 449 472 } 450 473 #endregion
Note: See TracChangeset
for help on using the changeset viewer.