Browse Source

ModelCollectionEvent: allow removing event handlers from within an event handler

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

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

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

Loading…
Cancel
Save