Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs	(revision 3364)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs	(revision 3365)
@@ -94,13 +94,23 @@
         Caption = "ConstrainedValueParameter";
         viewHost.Content = null;
-        valueGroupBox.Enabled = false;
         FillValueComboBox();
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
-        valueGroupBox.Enabled = true;
         FillValueComboBox();
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
       }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void OnReadOnlyChanged() {
+      base.OnReadOnlyChanged();
+      SetEnabledStateOfControls();
+    }
+
+    private void SetEnabledStateOfControls() {
+      valueGroupBox.Enabled = Content != null;
+      valueComboBox.Enabled = (valueComboBox.Items.Count > 0) && !ReadOnly;
+      viewHost.ReadOnly = ReadOnly;
     }
 
@@ -118,5 +128,5 @@
           valueComboBox.Items.Add(item.ToString());
         }
-        valueComboBox.Enabled = valueComboBox.Items.Count > 0;
+        valueComboBox.Enabled = (valueComboBox.Items.Count > 0) && !ReadOnly;
         valueComboBox.SelectedIndex = valueComboBoxItems.IndexOf(Content.Value);
       }
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs	(revision 3364)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs	(revision 3365)
@@ -83,10 +83,19 @@
         Caption = "LookupParameter";
         actualNameTextBox.Text = "-";
-        actualNameTextBox.Enabled = false;
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
         actualNameTextBox.Text = Content.ActualName;
-        actualNameTextBox.Enabled = true;
       }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void OnReadOnlyChanged() {
+      base.OnReadOnlyChanged();
+      SetEnabledStateOfControls();
+    }
+
+    private void SetEnabledStateOfControls() {
+      actualNameTextBox.Enabled = Content != null;
+      actualNameTextBox.ReadOnly = ReadOnly;
     }
 
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs	(revision 3364)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs	(revision 3365)
@@ -65,10 +65,18 @@
         Caption = "Parameter";
         dataTypeTextBox.Text = "-";
-        dataTypeTextBox.Enabled = false;
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
         dataTypeTextBox.Text = Content.DataType.GetPrettyName();
-        dataTypeTextBox.Enabled = true;
       }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void OnReadOnlyChanged() {
+      base.OnReadOnlyChanged();
+      SetEnabledStateOfControls();
+    }
+
+    private void SetEnabledStateOfControls() {
+      dataTypeTextBox.Enabled = Content != null;
     }
   }
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 3364)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 3365)
@@ -88,19 +88,26 @@
         Caption = "ValueLookupParameter";
         actualNameTextBox.Text = "-";
-        actualNameTextBox.Enabled = false;
-        setValueButton.Enabled = false;
-        clearValueButton.Enabled = false;
-        valueGroupBox.Enabled = false;
         viewHost.Content = null;
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
         actualNameTextBox.Text = Content.ActualName;
-        actualNameTextBox.Enabled = true;
-        setValueButton.Enabled = true;
-        clearValueButton.Enabled = Content.Value != null;
-        valueGroupBox.Enabled = true;
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
       }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void OnReadOnlyChanged() {
+      base.OnReadOnlyChanged();
+      SetEnabledStateOfControls();
+    }
+
+    private void SetEnabledStateOfControls() {
+      actualNameTextBox.Enabled = Content != null;
+      actualNameTextBox.ReadOnly = ReadOnly;
+      setValueButton.Enabled = Content != null && !ReadOnly;
+      clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
+      valueGroupBox.Enabled = Content != null;
+      viewHost.ReadOnly = ReadOnly;
     }
 
@@ -115,5 +122,5 @@
         Invoke(new EventHandler(Content_ValueChanged), sender, e);
       else {
-        clearValueButton.Enabled = Content.Value != null;
+        clearValueButton.Enabled = Content.Value != null && !ReadOnly;
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
@@ -139,5 +146,5 @@
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
-      if ((type != null) && (Content.DataType.IsAssignableFrom(type))) {
+      if (!ReadOnly && (type != null) && (Content.DataType.IsAssignableFrom(type))) {
         if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
         else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 3364)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 3365)
@@ -86,18 +86,25 @@
       if (Content == null) {
         Caption = "ValueParameter";
-        setValueButton.Enabled = false;
         clearValueButton.Visible = true;
-        clearValueButton.Enabled = false;
         viewHost.Content = null;
-        valueGroupBox.Enabled = false;
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
-        setValueButton.Enabled = true;
         clearValueButton.Visible = !(Content is ValueParameter<T>);
-        clearValueButton.Enabled = Content.Value != null;
-        valueGroupBox.Enabled = true;
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
       }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void OnReadOnlyChanged() {
+      base.OnReadOnlyChanged();
+      SetEnabledStateOfControls();
+    }
+
+    private void SetEnabledStateOfControls() {
+      setValueButton.Enabled = Content != null && !ReadOnly;
+      clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
+      valueGroupBox.Enabled = Content != null;
+      viewHost.ReadOnly = ReadOnly;
     }
 
@@ -106,5 +113,5 @@
         Invoke(new EventHandler(Content_ValueChanged), sender, e);
       else {
-        clearValueButton.Enabled = Content.Value != null;
+        clearValueButton.Enabled = Content.Value != null && !ReadOnly;
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
@@ -127,5 +134,5 @@
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
-      if ((type != null) && (Content.DataType.IsAssignableFrom(type))) {
+      if (!ReadOnly && (type != null) && (Content.DataType.IsAssignableFrom(type))) {
         if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
         else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
