Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs	(revision 3370)
@@ -37,8 +37,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !array.IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs	(revision 3370)
@@ -36,8 +36,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !((ICollection<T>)list).IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs	(revision 3370)
@@ -37,8 +37,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !((ICollection<KeyValuePair<TKey, TValue>>)dict).IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs	(revision 3370)
@@ -37,8 +37,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !((ICollection<KeyValuePair<TKey, TItem>>)dict).IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 3370)
@@ -36,8 +36,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !((ICollection<T>)list).IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs	(revision 3370)
@@ -37,8 +37,8 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
-        if (readOnlyView != value) {
+        if ((readOnlyView != value) && !((ICollection<T>)set).IsReadOnly) {
           readOnlyView = value;
           OnReadOnlyViewChanged();
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3370)
@@ -37,5 +37,5 @@
     public bool ReadOnlyView {
       get { return true; }
-      set { throw new NotSupportedException(); }
+      set { }
     }
 
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3370)
@@ -37,5 +37,5 @@
     public bool ReadOnlyView {
       get { return true; }
-      set { throw new NotSupportedException(); }
+      set { }
     }
 
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3370)
@@ -37,5 +37,5 @@
     public bool ReadOnlyView {
       get { return true; }
-      set { throw new NotSupportedException(); }
+      set { }
     }
 
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3370)
@@ -35,5 +35,5 @@
 
     #region Properties
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return true; }
       set { throw new NotSupportedException(); }
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3370)
@@ -37,5 +37,5 @@
     public bool ReadOnlyView {
       get { return true; }
-      set { throw new NotSupportedException(); }
+      set { }
     }
 
Index: /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs
===================================================================
--- /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3370)
@@ -37,5 +37,5 @@
     public bool ReadOnlyView {
       get { return true; }
-      set { throw new NotSupportedException(); }
+      set { }
     }
 
Index: /trunk/sources/HeuristicLab.Common/3.2/IContent.cs
===================================================================
--- /trunk/sources/HeuristicLab.Common/3.2/IContent.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Common/3.2/IContent.cs	(revision 3370)
@@ -28,4 +28,5 @@
   public interface IContent {
     bool ReadOnlyView { get; set; }
+
     event EventHandler ReadOnlyViewChanged;
   }
Index: /trunk/sources/HeuristicLab.Core/3.3/Item.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 3370)
@@ -43,5 +43,5 @@
     [Storable]
     private bool readOnlyView;
-    public bool ReadOnlyView {
+    public virtual bool ReadOnlyView {
       get { return readOnlyView; }
       set {
Index: /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleArray.cs
===================================================================
--- /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleArray.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleArray.cs	(revision 3370)
@@ -24,6 +24,5 @@
 
 namespace HeuristicLab.Data {
-  public interface IStringConvertibleArray {
-    bool ReadOnlyView { get; set; }
+  public interface IStringConvertibleArray : IContent {
     int Length { get; set; }
 
@@ -32,5 +31,4 @@
     bool SetValue(string value, int index);
 
-    event EventHandler ReadOnlyViewChanged;
     event EventHandler<EventArgs<int>> ItemChanged;
     event EventHandler Reset;
Index: /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleMatrix.cs
===================================================================
--- /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleMatrix.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleMatrix.cs	(revision 3370)
@@ -25,5 +25,5 @@
 
 namespace HeuristicLab.Data {
-  public interface IStringConvertibleMatrix {
+  public interface IStringConvertibleMatrix : IContent {
     int Rows { get; set; }
     int Columns { get; set; }
@@ -31,5 +31,4 @@
     IEnumerable<string> RowNames { get; set; }
 
-    bool ReadOnlyView { get; set; }
     bool SortableView { get; set; }
 
@@ -40,5 +39,4 @@
     event EventHandler ColumnNamesChanged;
     event EventHandler RowNamesChanged;
-    event EventHandler ReadOnlyViewChanged;
     event EventHandler SortableViewChanged;
     event EventHandler<EventArgs<int, int>> ItemChanged;
Index: /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleValue.cs
===================================================================
--- /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleValue.cs	(revision 3369)
+++ /trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleValue.cs	(revision 3370)
@@ -21,14 +21,12 @@
 
 using System;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Data {
-  public interface IStringConvertibleValue {
-    bool ReadOnlyView { get; set; }
-
+  public interface IStringConvertibleValue : IContent {
     bool Validate(string value, out string errorMessage);
     string GetValue();
     bool SetValue(string value);
 
-    event EventHandler ReadOnlyViewChanged;
     event EventHandler ValueChanged;
   }
