Browse Source

ModelCollectionEvent: allow removing event handlers from within an event handler

pull/59/merge
Daniel Grunwald 12 years ago
parent
commit
dbac7687dc
  1. 9
      src/Main/Base/Project/Dom/IModelCollection.cs

9
src/Main/Base/Project/Dom/IModelCollection.cs

@ -21,7 +21,8 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -21,7 +21,8 @@ namespace ICSharpCode.SharpDevelop.Dom
public void AddHandler(ModelCollectionChangedEventHandler<T> handler)
{
_handlers.Add(handler);
if (handler != null)
_handlers.Add(handler);
}
public void RemoveHandler(ModelCollectionChangedEventHandler<T> handler)
@ -31,10 +32,8 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -31,10 +32,8 @@ namespace ICSharpCode.SharpDevelop.Dom
public void Fire(IReadOnlyCollection<T> removedItems, IReadOnlyCollection<T> addedItems)
{
foreach (var handler in _handlers) {
if (handler != null) {
handler(removedItems, addedItems);
}
foreach (var handler in _handlers.ToArray()) {
handler(removedItems, addedItems);
}
}

Loading…
Cancel
Save