- Timestamp:
- 04/13/10 06:41:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs
r3286 r3317 35 35 36 36 #region Properties 37 [Storable] 38 private bool readOnlyView; 39 public bool ReadOnlyView { 40 get { return readOnlyView; } 41 set { 42 if (readOnlyView != value) { 43 readOnlyView = value; 44 OnReadOnlyViewChanged(); 45 OnPropertyChanged("ReadOnlyView"); 46 } 47 } 48 } 49 37 50 public IEqualityComparer<T> Comparer { 38 51 get { return set.Comparer; } … … 49 62 public ObservableSet() { 50 63 set = new HashSet<T>(); 64 readOnlyView = ((ICollection<T>)set).IsReadOnly; 51 65 } 52 66 public ObservableSet(IEnumerable<T> collection) { 53 67 set = new HashSet<T>(collection); 68 readOnlyView = ((ICollection<T>)set).IsReadOnly; 54 69 } 55 70 public ObservableSet(IEqualityComparer<T> comparer) { 56 71 set = new HashSet<T>(comparer); 72 readOnlyView = ((ICollection<T>)set).IsReadOnly; 57 73 } 58 74 public ObservableSet(IEnumerable<T> collection, IEqualityComparer<T> comparer) { 59 75 set = new HashSet<T>(collection, comparer); 76 readOnlyView = ((ICollection<T>)set).IsReadOnly; 60 77 } 61 78 #endregion … … 227 244 #region Events 228 245 [field: NonSerialized] 246 public event EventHandler ReadOnlyViewChanged; 247 protected virtual void OnReadOnlyViewChanged() { 248 EventHandler handler = ReadOnlyViewChanged; 249 if (handler != null) handler(this, EventArgs.Empty); 250 } 251 252 [field: NonSerialized] 229 253 public event CollectionItemsChangedEventHandler<T> ItemsAdded; 230 254 protected virtual void OnItemsAdded(IEnumerable<T> items) { 231 if (ItemsAdded != null)232 ItemsAdded(this, new CollectionItemsChangedEventArgs<T>(items));255 CollectionItemsChangedEventHandler<T> handler = ItemsAdded; 256 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 233 257 } 234 258 … … 236 260 public event CollectionItemsChangedEventHandler<T> ItemsRemoved; 237 261 protected virtual void OnItemsRemoved(IEnumerable<T> items) { 238 if (ItemsRemoved != null)239 ItemsRemoved(this, new CollectionItemsChangedEventArgs<T>(items));262 CollectionItemsChangedEventHandler<T> handler = ItemsRemoved; 263 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items)); 240 264 } 241 265 … … 243 267 public event CollectionItemsChangedEventHandler<T> CollectionReset; 244 268 protected virtual void OnCollectionReset(IEnumerable<T> items, IEnumerable<T> oldItems) { 245 if (CollectionReset != null)246 CollectionReset(this, new CollectionItemsChangedEventArgs<T>(items, oldItems));269 CollectionItemsChangedEventHandler<T> handler = CollectionReset; 270 if (handler != null) handler(this, new CollectionItemsChangedEventArgs<T>(items, oldItems)); 247 271 } 248 272 … … 250 274 public event PropertyChangedEventHandler PropertyChanged; 251 275 protected virtual void OnPropertyChanged(string propertyName) { 252 if (PropertyChanged != null)253 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));276 PropertyChangedEventHandler handler = PropertyChanged; 277 if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 254 278 } 255 279 #endregion
Note: See TracChangeset
for help on using the changeset viewer.