Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.Designer.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.Designer.cs	(revision 3788)
@@ -49,4 +49,5 @@
       base.itemsListView.CheckBoxes = true;
       base.itemsListView.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(itemsListView_ItemCheck);
+      base.itemsListView.MouseDown += new System.Windows.Forms.MouseEventHandler(itemsListView_MouseDown);
     }
 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemCollectionView.cs	(revision 3788)
@@ -58,4 +58,10 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
+      base.itemsListView.Enabled = !this.Locked;
+    }
+
+    protected override void OnLockedChanged() {
+      base.OnLockedChanged();
+      base.itemsListView.Enabled = !this.Locked;
     }
 
@@ -67,10 +73,20 @@
 
     #region ListView Events
+    private bool doubleClick;
     protected virtual void itemsListView_ItemCheck(object sender, ItemCheckEventArgs e) {
-      var checkedItem = (T)itemsListView.Items[e.Index].Tag;
-      bool check = e.NewValue == CheckState.Checked;
-      if (Content.ItemChecked(checkedItem) != check) {
-        Content.SetItemCheckedState(checkedItem, check);
+      if (doubleClick) {
+        e.NewValue = e.CurrentValue;
+        doubleClick = false;
+      } else {
+        var checkedItem = (T)itemsListView.Items[e.Index].Tag;
+        bool check = e.NewValue == CheckState.Checked;
+        if (Content.ItemChecked(checkedItem) != check) {
+          Content.SetItemCheckedState(checkedItem, check);
+        }
       }
+    }
+    protected void itemsListView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
+      if (e.Clicks > 1)
+        doubleClick = true;
     }
     #endregion
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.Designer.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.Designer.cs	(revision 3788)
@@ -49,4 +49,5 @@
       base.itemsListView.CheckBoxes = true;
       base.itemsListView.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(itemsListView_ItemCheck);
+      base.itemsListView.MouseDown += new System.Windows.Forms.MouseEventHandler(itemsListView_MouseDown);
     }
 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CheckedItemListView.cs	(revision 3788)
@@ -60,4 +60,5 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
+      base.itemsListView.Enabled = !this.Locked;
     }
 
@@ -68,11 +69,27 @@
     }
 
+    protected override void OnLockedChanged() {
+      base.OnLockedChanged();
+      base.itemsListView.Enabled = !this.Locked;
+    }
+
     #region ListView Events
+    private bool doubleClick;
     protected virtual void itemsListView_ItemCheck(object sender, ItemCheckEventArgs e) {
-      var checkedItem = (T) itemsListView.Items[e.Index].Tag;
-      bool check = e.NewValue == CheckState.Checked;
-      if (Content.ItemChecked(checkedItem) != check) {
-        Content.SetItemCheckedState(checkedItem, check);
+      if (doubleClick) {
+        e.NewValue = e.CurrentValue;
+        doubleClick = false;
+      } else {
+        var checkedItem = (T)itemsListView.Items[e.Index].Tag;
+        bool check = e.NewValue == CheckState.Checked;
+        if (Content.ItemChecked(checkedItem) != check) {
+          Content.SetItemCheckedState(checkedItem, check);
+        }
       }
+    }
+
+    protected void itemsListView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
+      if (e.Clicks > 1)
+        doubleClick = true;
     }
     #endregion
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ContentView.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ContentView.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ContentView.cs	(revision 3788)
@@ -72,7 +72,7 @@
             this.SuspendRepaint();
             locked = value;
+            OnLockedChanged();
             PropertyInfo prop = typeof(IContentView).GetProperty("Locked");
             PropagateStateChanges(this, typeof(IContentView), prop);
-            OnLockedChanged();
             OnChanged();
             this.ResumeRepaint(true);
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/View.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/View.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/View.cs	(revision 3788)
@@ -68,7 +68,7 @@
             this.SuspendRepaint();
             readOnly = value;
+            OnReadOnlyChanged();
             PropertyInfo prop = typeof(IView).GetProperty("ReadOnly");
             PropagateStateChanges(this, typeof(IView), prop);
-            OnReadOnlyChanged();
             this.ResumeRepaint(true);
           }
Index: /trunk/sources/HeuristicLab.Operators.Views/3.3/CheckedMultiOperatorView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators.Views/3.3/CheckedMultiOperatorView.cs	(revision 3787)
+++ /trunk/sources/HeuristicLab.Operators.Views/3.3/CheckedMultiOperatorView.cs	(revision 3788)
@@ -85,5 +85,4 @@
     private void SetEnabledStateOfControls() {
       breakpointCheckBox.Enabled = Content != null && !Locked;
-      operatorListView.Enabled = Content != null;
       parameterCollectionView.Enabled = Content != null;
     }
