private void OnComponentConfigurationListChanged(object sender, BuildListEventArgs <BuildComponentConfiguration> e) { if (_multiMap == null) { _multiMap = new BuildMultiSet <string, BuildComponentConfiguration>(); } switch (e.ChangeType) { case BuildListChangeType.Added: BuildComponentConfiguration addedItem = e.ChangedItem; _multiMap.Add(addedItem.ComponentName, addedItem); break; case BuildListChangeType.Removed: BuildComponentConfiguration removedItem = e.ChangedItem; _multiMap.Remove(removedItem.ComponentName, removedItem); break; case BuildListChangeType.Replaced: BuildComponentConfiguration changedItem = e.ChangedItem; BuildComponentConfiguration replacedWithItem = e.ReplacedWith; _multiMap.Remove(changedItem.ComponentName, changedItem); _multiMap.Add(replacedWithItem.ComponentName, replacedWithItem); break; case BuildListChangeType.Cleared: _multiMap.Clear(); break; } }
/// <summary> /// This raises the collection changed event with the specified event /// information /// </summary> /// <param name="e"> /// The <see cref="BuildListEventArgs{T}"/> specifying the event /// information. /// </param> protected virtual void FireChanged(BuildListEventArgs <T> e) { if (Changed != null) { Changed(this, e); } }