Index: trunk/sources/HeuristicLab.Core/3.3/Interfaces/IValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Interfaces/IValueParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Core/3.3/Interfaces/IValueParameter.cs	(revision 4332)
@@ -25,5 +25,7 @@
   public interface IValueParameter : IParameter {
     IItem Value { get; set; }
+    bool GetsCollected { get; set; }
     event EventHandler ValueChanged;
+    event EventHandler GetsCollectedChanged;
   }
 
Index: trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 4332)
@@ -86,5 +86,5 @@
     public virtual void CollectParameterValues(IDictionary<string, IItem> values) {
       foreach (IValueParameter param in parameters.OfType<IValueParameter>()) {
-        values.Add(param.Name, param.Value);
+        if (param.GetsCollected && param.Value != null) values.Add(param.Name, param.Value);
         if (param.Value is IParameterizedItem) {
           Dictionary<string, IItem> children = new Dictionary<string, IItem>();
Index: trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj.user
===================================================================
--- trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj.user	(revision 4321)
+++ 	(revision )
@@ -1,14 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <ProjectView>ShowAllFiles</ProjectView>
-    <PublishUrlHistory />
-    <InstallUrlHistory />
-    <SupportUrlHistory />
-    <UpdateUrlHistory />
-    <BootstrapperUrlHistory />
-    <ErrorReportUrlHistory />
-    <FallbackCulture>en-US</FallbackCulture>
-    <VerifyUploadedFiles>false</VerifyUploadedFiles>
-  </PropertyGroup>
-</Project>
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.Designer.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.Designer.cs	(revision 4332)
@@ -46,4 +46,5 @@
     private void InitializeComponent() {
       this.valueGroupBox = new System.Windows.Forms.GroupBox();
+      this.showInRunCheckBox = new System.Windows.Forms.CheckBox();
       this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.valueComboBox = new System.Windows.Forms.ComboBox();
@@ -51,8 +52,4 @@
       this.valueGroupBox.SuspendLayout();
       this.SuspendLayout();
-      // 
-      // dataTypeLabel
-      // 
-      this.dataTypeLabel.Location = new System.Drawing.Point(3, 55);
       // 
       // dataTypeTextBox
@@ -78,4 +75,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueGroupBox.Controls.Add(this.showInRunCheckBox);
       this.valueGroupBox.Controls.Add(this.viewHost);
       this.valueGroupBox.Controls.Add(this.valueComboBox);
@@ -87,4 +85,20 @@
       this.valueGroupBox.Text = "Value";
       // 
+      // showInRunCheckBox
+      // 
+      this.showInRunCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.showInRunCheckBox.AutoSize = true;
+      this.showInRunCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+      this.showInRunCheckBox.Checked = true;
+      this.showInRunCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.showInRunCheckBox.Location = new System.Drawing.Point(290, 21);
+      this.showInRunCheckBox.Name = "showInRunCheckBox";
+      this.showInRunCheckBox.Size = new System.Drawing.Size(90, 17);
+      this.showInRunCheckBox.TabIndex = 1;
+      this.showInRunCheckBox.Text = "&Show in Run:";
+      this.toolTip.SetToolTip(this.showInRunCheckBox, "Check to show the value of this parameter in each run.");
+      this.showInRunCheckBox.UseVisualStyleBackColor = true;
+      this.showInRunCheckBox.CheckedChanged += new System.EventHandler(this.showInRunCheckBox_CheckedChanged);
+      // 
       // viewHost
       // 
@@ -92,9 +106,11 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.viewHost.Caption = "View";
       this.viewHost.Content = null;
       this.viewHost.Location = new System.Drawing.Point(6, 46);
       this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
       this.viewHost.Size = new System.Drawing.Size(374, 185);
-      this.viewHost.TabIndex = 0;
+      this.viewHost.TabIndex = 2;
       this.viewHost.ViewType = null;
       // 
@@ -107,6 +123,6 @@
       this.valueComboBox.Location = new System.Drawing.Point(6, 19);
       this.valueComboBox.Name = "valueComboBox";
-      this.valueComboBox.Size = new System.Drawing.Size(374, 21);
-      this.valueComboBox.TabIndex = 1;
+      this.valueComboBox.Size = new System.Drawing.Size(278, 21);
+      this.valueComboBox.TabIndex = 0;
       this.toolTip.SetToolTip(this.valueComboBox, "Selected Value");
       this.valueComboBox.SelectedIndexChanged += new System.EventHandler(this.valueComboBox_SelectedIndexChanged);
@@ -128,4 +144,5 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.valueGroupBox.ResumeLayout(false);
+      this.valueGroupBox.PerformLayout();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -138,4 +155,5 @@
     protected HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
     protected System.Windows.Forms.ComboBox valueComboBox;
+    protected System.Windows.Forms.CheckBox showInRunCheckBox;
   }
 }
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ConstrainedValueParameterView.cs	(revision 4332)
@@ -61,4 +61,5 @@
     /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void DeregisterContentEvents() {
+      Content.GetsCollectedChanged -= new EventHandler(Content_GetsCollectedChanged);
       Content.ValidValues.ItemsAdded -= new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsAdded);
       Content.ValidValues.ItemsRemoved -= new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsRemoved);
@@ -74,4 +75,5 @@
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
+      Content.GetsCollectedChanged += new EventHandler(Content_GetsCollectedChanged);
       Content.ValidValues.ItemsAdded += new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsAdded);
       Content.ValidValues.ItemsRemoved += new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsRemoved);
@@ -83,4 +85,5 @@
       base.OnContentChanged();
       if (Content == null) {
+        showInRunCheckBox.Checked = false;
         viewHost.Content = null;
         FillValueComboBox();
@@ -88,4 +91,5 @@
         SetDataTypeTextBoxText();
         FillValueComboBox();
+        showInRunCheckBox.Checked = Content.GetsCollected;
         viewHost.ViewType = null;
         viewHost.Content = Content.Value;
@@ -97,7 +101,8 @@
       valueGroupBox.Enabled = Content != null;
       valueComboBox.Enabled = (valueComboBox.Items.Count > 0) && !ReadOnly;
+      showInRunCheckBox.Enabled = Content != null && !ReadOnly;
     }
 
-    private void FillValueComboBox() {
+    protected virtual void FillValueComboBox() {
       valueComboBox.SelectedIndexChanged -= new EventHandler(valueComboBox_SelectedIndexChanged);
       valueComboBoxItems.Clear();
@@ -119,5 +124,5 @@
 
     #region Content Events
-    private void Content_ValueChanged(object sender, EventArgs e) {
+    protected virtual void Content_ValueChanged(object sender, EventArgs e) {
       if (InvokeRequired)
         Invoke(new EventHandler(Content_ValueChanged), sender, e);
@@ -129,5 +134,5 @@
       }
     }
-    private void ValidValues_ItemsAdded(object sender, CollectionItemsChangedEventArgs<T> e) {
+    protected virtual void ValidValues_ItemsAdded(object sender, CollectionItemsChangedEventArgs<T> e) {
       if (InvokeRequired)
         Invoke(new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsAdded), sender, e);
@@ -135,5 +140,5 @@
         FillValueComboBox();
     }
-    private void ValidValues_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<T> e) {
+    protected virtual void ValidValues_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<T> e) {
       if (InvokeRequired)
         Invoke(new CollectionItemsChangedEventHandler<T>(ValidValues_ItemsRemoved), sender, e);
@@ -141,5 +146,5 @@
         FillValueComboBox();
     }
-    private void ValidValues_CollectionReset(object sender, CollectionItemsChangedEventArgs<T> e) {
+    protected virtual void ValidValues_CollectionReset(object sender, CollectionItemsChangedEventArgs<T> e) {
       if (InvokeRequired)
         Invoke(new CollectionItemsChangedEventHandler<T>(ValidValues_CollectionReset), sender, e);
@@ -147,9 +152,18 @@
         FillValueComboBox();
     }
+    protected virtual void Content_GetsCollectedChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_GetsCollectedChanged), sender, e);
+      else
+        showInRunCheckBox.Checked = Content != null && Content.GetsCollected;
+    }
     #endregion
 
-    private void valueComboBox_SelectedIndexChanged(object sender, EventArgs e) {
+    protected virtual void valueComboBox_SelectedIndexChanged(object sender, EventArgs e) {
       if (valueComboBox.SelectedIndex >= 0)
         Content.Value = valueComboBoxItems[valueComboBox.SelectedIndex];
+    }
+    protected virtual void showInRunCheckBox_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null) Content.GetsCollected = showInRunCheckBox.Checked;
     }
 
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj	(revision 4332)
@@ -94,4 +94,13 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\HeuristicLab.Data\3.3\bin\Debug\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Data.Views-3.3">
+      <HintPath>..\..\HeuristicLab.Data.Views\3.3\bin\Debug\HeuristicLab.Data.Views-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\HeuristicLab.Optimization\3.3\bin\Debug\HeuristicLab.Optimization-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
@@ -100,4 +109,5 @@
     <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
@@ -182,4 +192,8 @@
       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
       <Name>HeuristicLab.MainForm-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
+      <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
+      <Name>HeuristicLab.Optimization.Views-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.Designer.cs	(revision 4332)
@@ -47,4 +47,5 @@
     private void InitializeComponent() {
       this.valueGroupBox = new System.Windows.Forms.GroupBox();
+      this.showInRunCheckBox = new System.Windows.Forms.CheckBox();
       this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.clearValueButton = new System.Windows.Forms.Button();
@@ -90,4 +91,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueGroupBox.Controls.Add(this.showInRunCheckBox);
       this.valueGroupBox.Controls.Add(this.valueViewHost);
       this.valueGroupBox.Controls.Add(this.clearValueButton);
@@ -100,19 +102,36 @@
       this.valueGroupBox.Text = "Value";
       // 
-      // viewHost
+      // showInRunCheckBox
+      // 
+      this.showInRunCheckBox.AutoSize = true;
+      this.showInRunCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+      this.showInRunCheckBox.Checked = true;
+      this.showInRunCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.showInRunCheckBox.Location = new System.Drawing.Point(66, 24);
+      this.showInRunCheckBox.Name = "showInRunCheckBox";
+      this.showInRunCheckBox.Size = new System.Drawing.Size(90, 17);
+      this.showInRunCheckBox.TabIndex = 2;
+      this.showInRunCheckBox.Text = "&Show in Run:";
+      this.toolTip.SetToolTip(this.showInRunCheckBox, "Check to show the value of this parameter in each run.");
+      this.showInRunCheckBox.UseVisualStyleBackColor = true;
+      this.showInRunCheckBox.CheckedChanged += new System.EventHandler(this.showInRunCheckBox_CheckedChanged);
+      // 
+      // valueViewHost
       // 
       this.valueViewHost.AllowDrop = true;
-      this.valueViewHost.Content = null;
       this.valueViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueViewHost.Caption = "View";
+      this.valueViewHost.Content = null;
       this.valueViewHost.Location = new System.Drawing.Point(6, 49);
       this.valueViewHost.Name = "valueViewHost";
+      this.valueViewHost.ReadOnly = false;
       this.valueViewHost.Size = new System.Drawing.Size(374, 156);
-      this.valueViewHost.TabIndex = 0;
+      this.valueViewHost.TabIndex = 3;
       this.valueViewHost.ViewType = null;
-      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHostPanel_DragEnterOver);
       this.valueViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragDrop);
       this.valueViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.valueViewHostPanel_DragEnterOver);
+      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHostPanel_DragEnterOver);
       // 
       // clearValueButton
@@ -178,4 +197,5 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.valueGroupBox.ResumeLayout(false);
+      this.valueGroupBox.PerformLayout();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -191,4 +211,5 @@
     protected System.Windows.Forms.TextBox actualNameTextBox;
     protected System.Windows.Forms.Label actualNameLabel;
+    protected System.Windows.Forms.CheckBox showInRunCheckBox;
   }
 }
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 4332)
@@ -61,4 +61,5 @@
     protected override void DeregisterContentEvents() {
       Content.ActualNameChanged -= new EventHandler(Content_ActualNameChanged);
+      Content.GetsCollectedChanged -= new EventHandler(Content_GetsCollectedChanged);
       Content.ValueChanged -= new EventHandler(Content_ValueChanged);
       base.DeregisterContentEvents();
@@ -72,4 +73,5 @@
       base.RegisterContentEvents();
       Content.ActualNameChanged += new EventHandler(Content_ActualNameChanged);
+      Content.GetsCollectedChanged += new EventHandler(Content_GetsCollectedChanged);
       Content.ValueChanged += new EventHandler(Content_ValueChanged);
     }
@@ -79,8 +81,10 @@
       if (Content == null) {
         actualNameTextBox.Text = "-";
+        showInRunCheckBox.Checked = false;
         valueViewHost.Content = null;
       } else {
         SetDataTypeTextBoxText();
         actualNameTextBox.Text = Content.ActualName;
+        showInRunCheckBox.Checked = Content.GetsCollected;
         valueViewHost.ViewType = null;
         valueViewHost.Content = Content.Value;
@@ -94,4 +98,5 @@
       setValueButton.Enabled = Content != null && !ReadOnly;
       clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
+      showInRunCheckBox.Enabled = Content != null && !ReadOnly;
       valueGroupBox.Enabled = Content != null;
     }
@@ -112,4 +117,10 @@
         valueViewHost.Content = Content != null ? Content.Value : null;
       }
+    }
+    protected virtual void Content_GetsCollectedChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_GetsCollectedChanged), sender, e);
+      else
+        showInRunCheckBox.Checked = Content != null && Content.GetsCollected;
     }
 
@@ -134,4 +145,7 @@
     protected virtual void clearValueButton_Click(object sender, EventArgs e) {
       Content.Value = null;
+    }
+    protected virtual void showInRunCheckBox_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null) Content.GetsCollected = showInRunCheckBox.Checked;
     }
     protected virtual void valueViewHostPanel_DragEnterOver(object sender, DragEventArgs e) {
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.Designer.cs	(revision 4332)
@@ -47,4 +47,5 @@
     private void InitializeComponent() {
       this.valueGroupBox = new System.Windows.Forms.GroupBox();
+      this.showInRunCheckBox = new System.Windows.Forms.CheckBox();
       this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.clearValueButton = new System.Windows.Forms.Button();
@@ -76,4 +77,5 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueGroupBox.Controls.Add(this.showInRunCheckBox);
       this.valueGroupBox.Controls.Add(this.valueViewHost);
       this.valueGroupBox.Controls.Add(this.clearValueButton);
@@ -86,19 +88,36 @@
       this.valueGroupBox.Text = "Value";
       // 
-      // viewHost
+      // showInRunCheckBox
+      // 
+      this.showInRunCheckBox.AutoSize = true;
+      this.showInRunCheckBox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
+      this.showInRunCheckBox.Checked = true;
+      this.showInRunCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.showInRunCheckBox.Location = new System.Drawing.Point(66, 24);
+      this.showInRunCheckBox.Name = "showInRunCheckBox";
+      this.showInRunCheckBox.Size = new System.Drawing.Size(90, 17);
+      this.showInRunCheckBox.TabIndex = 2;
+      this.showInRunCheckBox.Text = "&Show in Run:";
+      this.toolTip.SetToolTip(this.showInRunCheckBox, "Check to show the value of this parameter in each run.");
+      this.showInRunCheckBox.UseVisualStyleBackColor = true;
+      this.showInRunCheckBox.CheckedChanged += new System.EventHandler(this.showInRunCheckBox_CheckedChanged);
+      // 
+      // valueViewHost
       // 
       this.valueViewHost.AllowDrop = true;
-      this.valueViewHost.Content = null;
       this.valueViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.valueViewHost.Caption = "View";
+      this.valueViewHost.Content = null;
       this.valueViewHost.Location = new System.Drawing.Point(6, 49);
-      this.valueViewHost.Name = "viewHost";
+      this.valueViewHost.Name = "valueViewHost";
+      this.valueViewHost.ReadOnly = false;
       this.valueViewHost.Size = new System.Drawing.Size(374, 182);
-      this.valueViewHost.TabIndex = 0;
+      this.valueViewHost.TabIndex = 3;
       this.valueViewHost.ViewType = null;
-      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragEnterOver);
       this.valueViewHost.DragDrop += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragDrop);
       this.valueViewHost.DragEnter += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragEnterOver);
+      this.valueViewHost.DragOver += new System.Windows.Forms.DragEventHandler(this.valueViewHost_DragEnterOver);
       // 
       // clearValueButton
@@ -112,5 +131,5 @@
       this.toolTip.SetToolTip(this.clearValueButton, "Clear Value");
       this.clearValueButton.UseVisualStyleBackColor = true;
-      this.clearValueButton.Click += new System.EventHandler(this.setValueButton_Click);
+      this.clearValueButton.Click += new System.EventHandler(this.clearValueButton_Click);
       // 
       // setValueButton
@@ -123,5 +142,5 @@
       this.toolTip.SetToolTip(this.setValueButton, "Set Value");
       this.setValueButton.UseVisualStyleBackColor = true;
-      this.setValueButton.Click += new System.EventHandler(this.changeValueButton_Click);
+      this.setValueButton.Click += new System.EventHandler(this.setValueButton_Click);
       // 
       // ValueParameterView
@@ -141,4 +160,5 @@
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.valueGroupBox.ResumeLayout(false);
+      this.valueGroupBox.PerformLayout();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -152,4 +172,5 @@
     protected System.Windows.Forms.Button setValueButton;
     protected System.Windows.Forms.Button clearValueButton;
+    protected System.Windows.Forms.CheckBox showInRunCheckBox;
   }
 }
Index: trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 4332)
@@ -61,4 +61,5 @@
     /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void DeregisterContentEvents() {
+      Content.GetsCollectedChanged -= new EventHandler(Content_GetsCollectedChanged);
       Content.ValueChanged -= new EventHandler(Content_ValueChanged);
       base.DeregisterContentEvents();
@@ -71,4 +72,5 @@
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
+      Content.GetsCollectedChanged += new EventHandler(Content_GetsCollectedChanged);
       Content.ValueChanged += new EventHandler(Content_ValueChanged);
     }
@@ -77,9 +79,9 @@
       base.OnContentChanged();
       if (Content == null) {
-        clearValueButton.Visible = true;
+        showInRunCheckBox.Checked = false;
         valueViewHost.Content = null;
       } else {
         SetDataTypeTextBoxText();
-        clearValueButton.Visible = !(Content is ValueParameter<T>);
+        showInRunCheckBox.Checked = Content.GetsCollected;
         valueViewHost.ViewType = null;
         valueViewHost.Content = Content.Value;
@@ -90,5 +92,6 @@
       base.SetEnabledStateOfControls();
       setValueButton.Enabled = Content != null && !ReadOnly;
-      clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
+      clearValueButton.Enabled = Content != null && Content.Value != null && !(Content is ValueParameter<T>) && !ReadOnly;
+      showInRunCheckBox.Enabled = Content != null && !ReadOnly;
       valueGroupBox.Enabled = Content != null;
     }
@@ -99,11 +102,17 @@
       else {
         SetDataTypeTextBoxText();
-        clearValueButton.Enabled = Content != null && Content.Value != null && !ReadOnly;
+        clearValueButton.Enabled = Content != null && Content.Value != null && !(Content is ValueParameter<T>) && !ReadOnly;
         valueViewHost.ViewType = null;
         valueViewHost.Content = Content != null ? Content.Value : null;
       }
     }
+    protected virtual void Content_GetsCollectedChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_GetsCollectedChanged), sender, e);
+      else
+        showInRunCheckBox.Checked = Content != null && Content.GetsCollected;
+    }
 
-    protected virtual void changeValueButton_Click(object sender, EventArgs e) {
+    protected virtual void setValueButton_Click(object sender, EventArgs e) {
       if (typeSelectorDialog == null) {
         typeSelectorDialog = new TypeSelectorDialog();
@@ -120,6 +129,9 @@
       }
     }
-    protected virtual void setValueButton_Click(object sender, EventArgs e) {
+    protected virtual void clearValueButton_Click(object sender, EventArgs e) {
       Content.Value = null;
+    }
+    protected virtual void showInRunCheckBox_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null) Content.GetsCollected = showInRunCheckBox.Checked;
     }
     protected virtual void valueViewHost_DragEnterOver(object sender, DragEventArgs e) {
Index: trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs	(revision 4332)
@@ -43,9 +43,17 @@
     public ConstrainedValueParameter() : base() { }
     public ConstrainedValueParameter(string name) : base(name) { }
+    public ConstrainedValueParameter(string name, bool getsCollected) : base(name, getsCollected) { }
     public ConstrainedValueParameter(string name, ItemSet<T> validValues) : base(name, validValues) { }
+    public ConstrainedValueParameter(string name, ItemSet<T> validValues, bool getsCollected) : base(name, validValues, getsCollected) { }
     public ConstrainedValueParameter(string name, ItemSet<T> validValues, T value) : base(name, validValues, value) { }
+    public ConstrainedValueParameter(string name, ItemSet<T> validValues, T value, bool getsCollected) : base(name, validValues, value, getsCollected) { }
     public ConstrainedValueParameter(string name, string description) : base(name, description) { }
+    public ConstrainedValueParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { }
     public ConstrainedValueParameter(string name, string description, ItemSet<T> validValues) : base(name, description, validValues) { }
+    public ConstrainedValueParameter(string name, string description, ItemSet<T> validValues, bool getsCollected) : base(name, description, validValues, getsCollected) { }
     public ConstrainedValueParameter(string name, string description, ItemSet<T> validValues, T value) : base(name, description, validValues, value) { }
+    public ConstrainedValueParameter(string name, string description, ItemSet<T> validValues, T value, bool getsCollected) : base(name, description, validValues, value, getsCollected) { }
+    [StorableConstructor]
+    protected ConstrainedValueParameter(bool deserializing) : base(deserializing) { }
 
     protected override void ValidValues_ItemsAdded(object sender, CollectionItemsChangedEventArgs<T> e) {
Index: trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 4332)
@@ -173,7 +173,7 @@
 
     public event EventHandler ActualNameChanged;
-    private void OnActualNameChanged() {
-      if (ActualNameChanged != null)
-        ActualNameChanged(this, EventArgs.Empty);
+    protected virtual void OnActualNameChanged() {
+      EventHandler handler = ActualNameChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
       OnToStringChanged();
     }
Index: trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 4332)
@@ -30,21 +30,15 @@
   [StorableClass]
   public class OperatorParameter : OptionalValueParameter<IOperator> {
-    public OperatorParameter()
-      : base("Anonymous") {
-    }
-    public OperatorParameter(string name)
-      : base(name) {
-    }
-    public OperatorParameter(string name, IOperator value)
-      : base(name, value) {
-      Value = value;
-    }
-    public OperatorParameter(string name, string description)
-      : base(name, description) {
-    }
-    public OperatorParameter(string name, string description, IOperator value)
-      : base(name, description, value) {
-      Value = value;
-    }
+    public OperatorParameter() : base("Anonymous") { }
+    public OperatorParameter(string name) : base(name) { }
+    public OperatorParameter(string name, bool getsCollected) : base(name, getsCollected) { }
+    public OperatorParameter(string name, IOperator value) : base(name, value) { }
+    public OperatorParameter(string name, IOperator value, bool getsCollected) : base(name, value, getsCollected) { }
+    public OperatorParameter(string name, string description) : base(name, description) { }
+    public OperatorParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { }
+    public OperatorParameter(string name, string description, IOperator value) : base(name, description, value) { }
+    public OperatorParameter(string name, string description, IOperator value, bool getsCollected) : base(name, description, value, getsCollected) { }
+    [StorableConstructor]
+    protected OperatorParameter(bool deserializing) : base(deserializing) { }
   }
 }
Index: trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs	(revision 4332)
@@ -61,5 +61,4 @@
       }
     }
-
     IItem IValueParameter.Value {
       get { return Value; }
@@ -75,7 +74,21 @@
     }
 
+    [Storable(DefaultValue = true)]
+    private bool getsCollected;
+    public bool GetsCollected {
+      get { return getsCollected; }
+      set {
+        if (value != getsCollected) {
+          getsCollected = value;
+          OnGetsCollectedChanged();
+        }
+      }
+    }
+
+    #region Constructors
     public OptionalConstrainedValueParameter()
       : base("Anonymous", typeof(T)) {
       this.validValues = new ItemSet<T>();
+      this.getsCollected = true;
       Initialize();
     }
@@ -83,4 +96,11 @@
       : base(name, typeof(T)) {
       this.validValues = new ItemSet<T>();
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, bool getsCollected)
+      : base(name, typeof(T)) {
+      this.validValues = new ItemSet<T>();
+      this.getsCollected = getsCollected;
       Initialize();
     }
@@ -88,4 +108,11 @@
       : base(name, typeof(T)) {
       this.validValues = validValues;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, ItemSet<T> validValues, bool getsCollected)
+      : base(name, typeof(T)) {
+      this.validValues = validValues;
+      this.getsCollected = getsCollected;
       Initialize();
     }
@@ -94,4 +121,12 @@
       this.validValues = validValues;
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, ItemSet<T> validValues, T value, bool getsCollected)
+      : base(name, typeof(T)) {
+      this.validValues = validValues;
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
@@ -99,4 +134,11 @@
       : base(name, description, typeof(T)) {
       this.validValues = new ItemSet<T>();
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, string description, bool getsCollected)
+      : base(name, description, typeof(T)) {
+      this.validValues = new ItemSet<T>();
+      this.getsCollected = getsCollected;
       Initialize();
     }
@@ -104,4 +146,11 @@
       : base(name, description, typeof(T)) {
       this.validValues = validValues;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, string description, ItemSet<T> validValues, bool getsCollected)
+      : base(name, description, typeof(T)) {
+      this.validValues = validValues;
+      this.getsCollected = getsCollected;
       Initialize();
     }
@@ -110,8 +159,17 @@
       this.validValues = validValues;
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalConstrainedValueParameter(string name, string description, ItemSet<T> validValues, T value, bool getsCollected)
+      : base(name, description, typeof(T)) {
+      this.validValues = validValues;
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
     [StorableConstructor]
     protected OptionalConstrainedValueParameter(bool deserializing) : base(deserializing) { }
+    #endregion
 
     [StorableHook(HookType.AfterDeserialization)]
@@ -125,4 +183,5 @@
       clone.validValues = (ItemSet<T>)cloner.Clone(validValues);
       clone.value = (T)cloner.Clone(value);
+      clone.getsCollected = getsCollected;
       clone.Initialize();
       return clone;
@@ -142,8 +201,13 @@
     public event EventHandler ValueChanged;
     protected virtual void OnValueChanged() {
-      if (ValueChanged != null)
-        ValueChanged(this, EventArgs.Empty);
+      EventHandler handler = ValueChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
       OnItemImageChanged();
       OnToStringChanged();
+    }
+    public event EventHandler GetsCollectedChanged;
+    protected virtual void OnGetsCollectedChanged() {
+      EventHandler handler = GetsCollectedChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
     }
 
Index: trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 4332)
@@ -66,25 +66,64 @@
     }
 
+    [Storable(DefaultValue = true)]
+    private bool getsCollected;
+    public bool GetsCollected {
+      get { return getsCollected; }
+      set {
+        if (value != getsCollected) {
+          getsCollected = value;
+          OnGetsCollectedChanged();
+        }
+      }
+    }
+
+    #region Constructors
     public OptionalValueParameter()
       : base("Anonymous", typeof(T)) {
+      this.getsCollected = true;
     }
     public OptionalValueParameter(string name)
       : base(name, typeof(T)) {
+      this.getsCollected = true;
+    }
+    public OptionalValueParameter(string name, bool getsCollected)
+      : base(name, typeof(T)) {
+      this.getsCollected = getsCollected;
     }
     public OptionalValueParameter(string name, T value)
       : base(name, typeof(T)) {
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalValueParameter(string name, T value, bool getsCollected)
+      : base(name, typeof(T)) {
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
     public OptionalValueParameter(string name, string description)
       : base(name, description, typeof(T)) {
+      this.getsCollected = true;
+    }
+    public OptionalValueParameter(string name, string description, bool getsCollected)
+      : base(name, description, typeof(T)) {
+      this.getsCollected = getsCollected;
     }
     public OptionalValueParameter(string name, string description, T value)
       : base(name, description, typeof(T)) {
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public OptionalValueParameter(string name, string description, T value, bool getsCollected)
+      : base(name, description, typeof(T)) {
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
     [StorableConstructor]
     protected OptionalValueParameter(bool deserializing) : base(deserializing) { }
+    #endregion
 
     [StorableHook(HookType.AfterDeserialization)]
@@ -96,4 +135,5 @@
       OptionalValueParameter<T> clone = (OptionalValueParameter<T>)base.Clone(cloner);
       clone.value = (T)cloner.Clone(value);
+      clone.getsCollected = getsCollected;
       clone.Initialize();
       return clone;
@@ -112,9 +152,14 @@
 
     public event EventHandler ValueChanged;
-    private void OnValueChanged() {
-      if (ValueChanged != null)
-        ValueChanged(this, EventArgs.Empty);
+    protected virtual void OnValueChanged() {
+      EventHandler handler = ValueChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
       OnItemImageChanged();
       OnToStringChanged();
+    }
+    public event EventHandler GetsCollectedChanged;
+    protected virtual void OnGetsCollectedChanged() {
+      EventHandler handler = GetsCollectedChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
     }
 
Index: trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 4332)
@@ -44,4 +44,6 @@
       : base(name, description, typeof(IScope)) {
     }
+    [StorableConstructor]
+    protected ScopeParameter(bool deserializing) : base(deserializing) { }
 
     public override string ToString() {
Index: trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 4332)
@@ -66,28 +66,72 @@
     }
 
+    [Storable(DefaultValue = true)]
+    private bool getsCollected;
+    public bool GetsCollected {
+      get { return getsCollected; }
+      set {
+        if (value != getsCollected) {
+          getsCollected = value;
+          OnGetsCollectedChanged();
+        }
+      }
+    }
+
+    #region Constructors
     public ValueLookupParameter()
       : base() {
+      this.getsCollected = true;
     }
     public ValueLookupParameter(string name)
       : base(name) {
+      this.getsCollected = true;
+    }
+    public ValueLookupParameter(string name, bool getsCollected)
+      : base(name) {
+      this.getsCollected = getsCollected;
     }
     public ValueLookupParameter(string name, T value)
       : base(name) {
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public ValueLookupParameter(string name, T value, bool getsCollected)
+      : base(name) {
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
     public ValueLookupParameter(string name, string description)
       : base(name, description) {
+      this.getsCollected = true;
+    }
+    public ValueLookupParameter(string name, string description, bool getsCollected)
+      : base(name, description) {
+      this.getsCollected = getsCollected;
     }
     public ValueLookupParameter(string name, string description, T value)
       : base(name, description) {
       this.value = value;
+      this.getsCollected = true;
+      Initialize();
+    }
+    public ValueLookupParameter(string name, string description, T value, bool getsCollected)
+      : base(name, description) {
+      this.value = value;
+      this.getsCollected = getsCollected;
       Initialize();
     }
     public ValueLookupParameter(string name, string description, string actualName)
       : base(name, description, actualName) {
+      this.getsCollected = true;
+    }
+    public ValueLookupParameter(string name, string description, string actualName, bool getsCollected)
+      : base(name, description, actualName) {
+      this.getsCollected = getsCollected;
     }
     [StorableConstructor]
     protected ValueLookupParameter(bool deserializing) : base(deserializing) { }
+    #endregion
 
     [StorableHook(HookType.AfterDeserialization)]
@@ -99,4 +143,5 @@
       ValueLookupParameter<T> clone = (ValueLookupParameter<T>)base.Clone(cloner);
       clone.value = (T)cloner.Clone(value);
+      clone.getsCollected = getsCollected;
       clone.Initialize();
       return clone;
@@ -113,9 +158,14 @@
 
     public event EventHandler ValueChanged;
-    private void OnValueChanged() {
-      if (ValueChanged != null)
-        ValueChanged(this, EventArgs.Empty);
+    protected virtual void OnValueChanged() {
+      EventHandler handler = ValueChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
       OnItemImageChanged();
       OnToStringChanged();
+    }
+    public event EventHandler GetsCollectedChanged;
+    protected virtual void OnGetsCollectedChanged() {
+      EventHandler handler = GetsCollectedChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
     }
 
Index: trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 4321)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 4332)
@@ -41,7 +41,13 @@
     public ValueParameter() : base() { }
     public ValueParameter(string name) : base(name) { }
+    public ValueParameter(string name, bool getsCollected) : base(name, getsCollected) { }
     public ValueParameter(string name, T value) : base(name, value) { }
+    public ValueParameter(string name, T value, bool getsCollected) : base(name, value, getsCollected) { }
     public ValueParameter(string name, string description) : base(name, description) { }
+    public ValueParameter(string name, string description, bool getsCollected) : base(name, description, getsCollected) { }
     public ValueParameter(string name, string description, T value) : base(name, description, value) { }
+    public ValueParameter(string name, string description, T value, bool getsCollected) : base(name, description, value, getsCollected) { }
+    [StorableConstructor]
+    protected ValueParameter(bool deserializing) : base(deserializing) { }
   }
 }
