Index: /trunk/sources/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj	(revision 2832)
@@ -67,4 +67,9 @@
   <ItemGroup>
     <None Include="HeuristicLabCollectionsPlugin.cs.frame" />
+    <Compile Include="INotifyObservableListItemsChanged.cs" />
+    <Compile Include="INotifyObservableKeyedCollectionItemsChanged.cs" />
+    <Compile Include="INotifyObservableDictionaryItemsChanged.cs" />
+    <Compile Include="INotifyObservableCollectionItemsChanged.cs" />
+    <Compile Include="INotifyObservableArrayItemsChanged.cs" />
     <Compile Include="ReadOnlyObservableArray.cs" />
     <Compile Include="ObservableArray.cs" />
Index: /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableArrayItemsChanged.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableArrayItemsChanged.cs	(revision 2832)
+++ /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableArrayItemsChanged.cs	(revision 2832)
@@ -0,0 +1,31 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.ComponentModel;
+
+namespace HeuristicLab.Collections {
+  public interface INotifyObservableArrayItemsChanged<T> {
+    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced;
+    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsMoved;
+    event CollectionItemsChangedEventHandler<IndexedItem<T>> CollectionReset;
+  }
+}
Index: /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableCollectionItemsChanged.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableCollectionItemsChanged.cs	(revision 2832)
+++ /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableCollectionItemsChanged.cs	(revision 2832)
@@ -0,0 +1,31 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.ComponentModel;
+
+namespace HeuristicLab.Collections {
+  public interface INotifyObservableCollectionItemsChanged<T> {
+    event CollectionItemsChangedEventHandler<T> ItemsAdded;
+    event CollectionItemsChangedEventHandler<T> ItemsRemoved;
+    event CollectionItemsChangedEventHandler<T> CollectionReset;
+  }
+}
Index: /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableDictionaryItemsChanged.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableDictionaryItemsChanged.cs	(revision 2832)
+++ /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableDictionaryItemsChanged.cs	(revision 2832)
@@ -0,0 +1,28 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+
+namespace HeuristicLab.Collections {
+  public interface INotifyObservableDictionaryItemsChanged<TKey, TValue> : INotifyObservableCollectionItemsChanged<KeyValuePair<TKey, TValue>> {
+    event CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>> ItemsReplaced;
+  }
+}
Index: /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableKeyedCollectionItemsChanged.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableKeyedCollectionItemsChanged.cs	(revision 2832)
+++ /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableKeyedCollectionItemsChanged.cs	(revision 2832)
@@ -0,0 +1,26 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Collections {
+  public interface INotifyObservableKeyedCollectionItemsChanged<TKey, TItem> : INotifyObservableCollectionItemsChanged<TItem> {
+    event CollectionItemsChangedEventHandler<TItem> ItemsReplaced;
+  }
+}
Index: /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableListItemsChanged.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableListItemsChanged.cs	(revision 2832)
+++ /trunk/sources/HeuristicLab.Collections/3.3/INotifyObservableListItemsChanged.cs	(revision 2832)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+
+namespace HeuristicLab.Collections {
+  public interface INotifyObservableListItemsChanged<T> : INotifyObservableCollectionItemsChanged<T> {
+    new event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsAdded;
+    new event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsRemoved;
+    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced;
+    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsMoved;
+    new event CollectionItemsChangedEventHandler<IndexedItem<T>> CollectionReset;
+  }
+}
Index: /trunk/sources/HeuristicLab.Collections/3.3/IObservableArray.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/IObservableArray.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/IObservableArray.cs	(revision 2832)
@@ -24,10 +24,6 @@
 
 namespace HeuristicLab.Collections {
-  public interface IObservableArray<T> : IList<T>, INotifyPropertyChanged {
+  public interface IObservableArray<T> : IList<T>, INotifyObservableArrayItemsChanged<T>, INotifyPropertyChanged {
     int Length { get; }
-
-    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced;
-    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsMoved;
-    event CollectionItemsChangedEventHandler<IndexedItem<T>> CollectionReset;
   }
 }
Index: /trunk/sources/HeuristicLab.Collections/3.3/IObservableCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/IObservableCollection.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/IObservableCollection.cs	(revision 2832)
@@ -24,8 +24,4 @@
 
 namespace HeuristicLab.Collections {
-  public interface IObservableCollection<T> : ICollection<T>, INotifyPropertyChanged {
-    event CollectionItemsChangedEventHandler<T> ItemsAdded;
-    event CollectionItemsChangedEventHandler<T> ItemsRemoved;
-    event CollectionItemsChangedEventHandler<T> CollectionReset;
-  }
+  public interface IObservableCollection<T> : ICollection<T>, INotifyObservableCollectionItemsChanged<T>, INotifyPropertyChanged { }
 }
Index: /trunk/sources/HeuristicLab.Collections/3.3/IObservableDictionary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/IObservableDictionary.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/IObservableDictionary.cs	(revision 2832)
@@ -23,6 +23,4 @@
 
 namespace HeuristicLab.Collections {
-  public interface IObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IObservableCollection<KeyValuePair<TKey, TValue>> {
-    event CollectionItemsChangedEventHandler<KeyValuePair<TKey, TValue>> ItemsReplaced;
-  }
+  public interface IObservableDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IObservableCollection<KeyValuePair<TKey, TValue>>, INotifyObservableDictionaryItemsChanged<TKey, TValue> { }
 }
Index: /trunk/sources/HeuristicLab.Collections/3.3/IObservableKeyedCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/IObservableKeyedCollection.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/IObservableKeyedCollection.cs	(revision 2832)
@@ -21,5 +21,5 @@
 
 namespace HeuristicLab.Collections {
-  public interface IObservableKeyedCollection<TKey, TItem> : IObservableCollection<TItem> {
+  public interface IObservableKeyedCollection<TKey, TItem> : IObservableCollection<TItem>, INotifyObservableKeyedCollectionItemsChanged<TKey, TItem> {
     TItem this[TKey key] { get; }
 
@@ -28,6 +28,4 @@
 
     bool Remove(TKey key);
-
-    event CollectionItemsChangedEventHandler<TItem> ItemsReplaced;
   }
 }
Index: /trunk/sources/HeuristicLab.Collections/3.3/IObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/IObservableList.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/IObservableList.cs	(revision 2832)
@@ -23,10 +23,4 @@
 
 namespace HeuristicLab.Collections {
-  public interface IObservableList<T> : IList<T>, IObservableCollection<T> {
-    new event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsAdded;
-    new event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsRemoved;
-    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsReplaced;
-    event CollectionItemsChangedEventHandler<IndexedItem<T>> ItemsMoved;
-    new event CollectionItemsChangedEventHandler<IndexedItem<T>> CollectionReset;
-  }
+  public interface IObservableList<T> : IList<T>, IObservableCollection<T>, INotifyObservableListItemsChanged<T> { }
 }
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 2832)
@@ -382,5 +382,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> itemsAdded;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.ItemsAdded {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.ItemsAdded {
       add { itemsAdded += value; }
       remove { itemsAdded -= value; }
@@ -400,5 +400,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> itemsRemoved;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.ItemsRemoved {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.ItemsRemoved {
       add { itemsRemoved += value; }
       remove { itemsRemoved -= value; }
@@ -432,5 +432,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> collectionReset;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.CollectionReset {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.CollectionReset {
       add { collectionReset += value; }
       remove { collectionReset -= value; }
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 2831)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 2832)
@@ -121,5 +121,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> itemsAdded;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.ItemsAdded {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.ItemsAdded {
       add { itemsAdded += value; }
       remove { itemsAdded -= value; }
@@ -139,5 +139,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> itemsRemoved;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.ItemsRemoved {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.ItemsRemoved {
       add { itemsRemoved += value; }
       remove { itemsRemoved -= value; }
@@ -171,5 +171,5 @@
     [field: NonSerialized]
     private event CollectionItemsChangedEventHandler<T> collectionReset;
-    event CollectionItemsChangedEventHandler<T> IObservableCollection<T>.CollectionReset {
+    event CollectionItemsChangedEventHandler<T> INotifyObservableCollectionItemsChanged<T>.CollectionReset {
       add { collectionReset += value; }
       remove { collectionReset -= value; }
