Index: trunk/sources/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj	(revision 5767)
+++ trunk/sources/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj	(revision 5768)
@@ -431,4 +431,5 @@
     <Content Include="Resources\VS2008ImageLibrary\VS2008ImageLibrary_Actions_Checkout.png" />
     <Content Include="Resources\VS2008ImageLibrary\VS2008ImageLibrary_Actions_Clone.png" />
+    <None Include="Resources\VS2008ImageLibrary\VS2008ImageLibrary_Objects_HiddenField.png" />
     <None Include="Resources\VS2010ImageLibrary\VS2010ImageLibrary_Actions_Filter.png" />
     <None Include="Resources\VS2008ImageLibrary\VS2008ImageLibrary_Objects_Cab.png" />
Index: trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.Designer.cs	(revision 5767)
+++ trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.Designer.cs	(revision 5768)
@@ -425,4 +425,11 @@
         }
         
+        public static System.Drawing.Bitmap HiddenField {
+            get {
+                object obj = ResourceManager.GetObject("HiddenField", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         public static System.Drawing.Bitmap HighPriorityLarge {
             get {
Index: trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.resx
===================================================================
--- trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.resx	(revision 5767)
+++ trunk/sources/HeuristicLab.Common.Resources/3.3/VSImageLibrary.resx	(revision 5768)
@@ -275,4 +275,7 @@
     <value>Resources\VS2008ImageLibrary\VS2008ImageLibrary_Actions_Graph.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="HiddenField" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Resources\VS2008ImageLibrary\VS2008ImageLibrary_Objects_HiddenField.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="HighPriorityLarge" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>Resources\VS2008ImageLibrary\VS2008ImageLibrary_Annotations&amp;Buttons_HighPriority_Large.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
Index: trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 5767)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 5768)
@@ -12,5 +12,6 @@
     <AssemblyName>HeuristicLab.Core.Views-3.3</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <TargetFrameworkProfile></TargetFrameworkProfile>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
     <FileAlignment>512</FileAlignment>
     <SignAssembly>true</SignAssembly>
Index: trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.Designer.cs	(revision 5767)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.Designer.cs	(revision 5768)
@@ -20,4 +20,5 @@
 #endregion
 
+using System.Windows.Forms;
 namespace HeuristicLab.Core.Views {
   partial class ParameterCollectionView {
@@ -35,8 +36,73 @@
     private void InitializeComponent() {
       components = new System.ComponentModel.Container();
+      this.showHiddenParametersCheckBox = new System.Windows.Forms.CheckBox();
+      this.itemsListViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.showHideParametersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
+      this.splitContainer.Panel1.SuspendLayout();
+      this.splitContainer.Panel2.SuspendLayout();
+      this.splitContainer.SuspendLayout();
+      this.detailsGroupBox.SuspendLayout();
+      this.itemsGroupBox.SuspendLayout();
+      this.itemsListViewContextMenuStrip.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // splitContainer.Panel1
+      // 
+      this.splitContainer.Panel1.Controls.Add(this.showHiddenParametersCheckBox);
+      // 
+      // itemsListView
+      // 
+      this.itemsListView.ContextMenuStrip = this.itemsListViewContextMenuStrip;
+      this.itemsListView.TabIndex = 6;
+      // 
+      // showHiddenParametersCheckBox
+      // 
+      this.showHiddenParametersCheckBox.Appearance = System.Windows.Forms.Appearance.Button;
+      this.showHiddenParametersCheckBox.Checked = false;
+      this.showHiddenParametersCheckBox.CheckState = System.Windows.Forms.CheckState.Unchecked;
+      this.showHiddenParametersCheckBox.Image = HeuristicLab.Common.Resources.VSImageLibrary.HiddenField;
+      this.showHiddenParametersCheckBox.Location = new System.Drawing.Point(153, 3);
+      this.showHiddenParametersCheckBox.Name = "showHiddenParametersCheckBox";
+      this.showHiddenParametersCheckBox.Size = new System.Drawing.Size(24, 24);
+      this.showHiddenParametersCheckBox.TabIndex = 5;
+      this.toolTip.SetToolTip(this.showHiddenParametersCheckBox, "Show Hidden Parameters");
+      this.showHiddenParametersCheckBox.UseVisualStyleBackColor = true;
+      this.showHiddenParametersCheckBox.CheckedChanged += new System.EventHandler(showHiddenParametersCheckBox_CheckedChanged);
+      // 
+      // itemsListViewContextMenuStrip
+      // 
+      this.itemsListViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.showHideParametersToolStripMenuItem});
+      this.itemsListViewContextMenuStrip.Name = "itemsListViewContextMenuStrip";
+      this.itemsListViewContextMenuStrip.Size = new System.Drawing.Size(161, 26);
+      this.itemsListViewContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(itemsListViewContextMenuStrip_Opening);
+      // 
+      // showHideParametersToolStripMenuItem
+      // 
+      this.showHideParametersToolStripMenuItem.Name = "showHideParametersToolStripMenuItem";
+      this.showHideParametersToolStripMenuItem.Size = new System.Drawing.Size(160, 22);
+      this.showHideParametersToolStripMenuItem.Text = "Show/Hide Parameters";
+      this.showHideParametersToolStripMenuItem.Click += new System.EventHandler(showHideParametersToolStripMenuItem_Click);
+      // 
+      // ParameterCollectionView
+      // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Name = "ParameterCollectionView";
+      this.splitContainer.Panel1.ResumeLayout(false);
+      this.splitContainer.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
+      this.splitContainer.ResumeLayout(false);
+      this.detailsGroupBox.ResumeLayout(false);
+      this.itemsGroupBox.ResumeLayout(false);
+      this.itemsListViewContextMenuStrip.ResumeLayout(false);
+      this.ResumeLayout(false);
     }
 
     #endregion
+
+    protected CheckBox showHiddenParametersCheckBox;
+    protected ContextMenuStrip itemsListViewContextMenuStrip;
+    protected ToolStripMenuItem showHideParametersToolStripMenuItem;
   }
 }
Index: trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs	(revision 5767)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs	(revision 5768)
@@ -21,4 +21,7 @@
 
 using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
 using System.Windows.Forms;
 using HeuristicLab.MainForm;
@@ -46,4 +49,13 @@
     }
 
+    protected override void DeregisterItemEvents(IParameter item) {
+      item.HiddenChanged -= new EventHandler(Item_HiddenChanged);
+      base.DeregisterItemEvents(item);
+    }
+    protected override void RegisterItemEvents(IParameter item) {
+      base.RegisterItemEvents(item);
+      item.HiddenChanged += new EventHandler(Item_HiddenChanged);
+    }
+
     protected override IParameter CreateItem() {
       if (createParameterDialog == null) createParameterDialog = new CreateParameterDialog();
@@ -57,4 +69,86 @@
       return null;
     }
+
+    protected override void AddListViewItem(ListViewItem listViewItem) {
+      IParameter parameter = listViewItem.Tag as IParameter;
+      if ((parameter != null) && (parameter.Hidden) && (!showHiddenParametersCheckBox.Checked)) {
+        return; // skip parameter
+      }
+      if ((parameter != null) && (parameter.Hidden) && (showHiddenParametersCheckBox.Checked)) {
+        listViewItem.Font = new Font(listViewItem.Font, FontStyle.Italic);
+        listViewItem.ForeColor = Color.LightGray;
+      }
+      base.AddListViewItem(listViewItem);
+    }
+
+    protected virtual void UpdateParameterVisibility(IParameter parameter) {
+      if (parameter.Hidden) {
+        if (showHiddenParametersCheckBox.Checked) {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter)) {
+            listViewItem.Font = new Font(listViewItem.Font, FontStyle.Italic);
+            listViewItem.ForeColor = Color.LightGray;
+          }
+        } else {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter).ToArray())
+            RemoveListViewItem(listViewItem);
+          RebuildImageList();
+        }
+      } else {
+        if (showHiddenParametersCheckBox.Checked) {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter)) {
+            listViewItem.Font = new Font(listViewItem.Font, FontStyle.Regular);
+            listViewItem.ForeColor = itemsListView.ForeColor;
+          }
+        } else {
+          for (int i = 0; i < Content.Count(x => x == parameter); i++)
+            AddListViewItem(CreateListViewItem(parameter));
+        }
+      }
+      AdjustListViewColumnSizes();
+    }
+
+    #region Control Events
+    protected virtual void showHiddenParametersCheckBox_CheckedChanged(object sender, System.EventArgs e) {
+      if (showHiddenParametersCheckBox.Checked) {
+        foreach (IParameter parameter in Content.Where(x => x.Hidden))
+          AddListViewItem(CreateListViewItem(parameter));
+        AdjustListViewColumnSizes();
+      } else {
+        foreach (IParameter parameter in Content.Where(x => x.Hidden)) {
+          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter).ToArray())
+            RemoveListViewItem(listViewItem);
+        }
+        RebuildImageList();
+      }
+    }
+    protected virtual void itemsListViewContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e) {
+      if ((itemsListView.SelectedItems.Count == 0) || ReadOnly || Locked) {
+        showHideParametersToolStripMenuItem.Enabled = false;
+      } else {
+        List<IParameter> parameters = new List<IParameter>();
+        foreach (ListViewItem listViewItem in itemsListView.SelectedItems) {
+          IParameter parameter = listViewItem.Tag as IParameter;
+          if (parameter != null) parameters.Add(parameter);
+        }
+        showHideParametersToolStripMenuItem.Enabled = (parameters.Count > 0) && (parameters.All(x => x.Hidden == parameters[0].Hidden));
+        if (parameters.Count == 1) showHideParametersToolStripMenuItem.Text = parameters[0].Hidden ? "Show Parameter" : "Hide Parameter";
+        else showHideParametersToolStripMenuItem.Text = parameters[0].Hidden ? "Show Parameters" : "Hide Parameters";
+        showHideParametersToolStripMenuItem.Tag = parameters;
+      }
+    }
+    protected virtual void showHideParametersToolStripMenuItem_Click(object sender, System.EventArgs e) {
+      foreach (IParameter parameter in (IEnumerable<IParameter>)showHideParametersToolStripMenuItem.Tag)
+        parameter.Hidden = !parameter.Hidden;
+    }
+    #endregion
+
+    #region Item Events
+    protected virtual void Item_HiddenChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Item_HiddenChanged), sender, e);
+      else
+        UpdateParameterVisibility((IParameter)sender);
+    }
+    #endregion
   }
 }
Index: trunk/sources/HeuristicLab.Core/3.3/Interfaces/IParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Interfaces/IParameter.cs	(revision 5767)
+++ trunk/sources/HeuristicLab.Core/3.3/Interfaces/IParameter.cs	(revision 5768)
@@ -25,6 +25,9 @@
   public interface IParameter : INamedItem {
     Type DataType { get; }
+    bool Hidden { get; set; }
     IItem ActualValue { get; set; }
     IExecutionContext ExecutionContext { get; set; }
+
+    event EventHandler HiddenChanged;
   }
 }
Index: trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 5767)
+++ trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 5768)
@@ -55,4 +55,16 @@
     }
 
+    [Storable(DefaultValue = false)]
+    private bool hidden;
+    public bool Hidden {
+      get { return hidden; }
+      set {
+        if (value != hidden) {
+          hidden = value;
+          OnHiddenChanged();
+        }
+      }
+    }
+
     private Lazy<ThreadLocal<IItem>> cachedActualValues;
     public IItem ActualValue {
@@ -86,4 +98,5 @@
       : base(original, cloner) {
       dataType = original.dataType;
+      hidden = original.hidden;
       cachedActualValues = new Lazy<ThreadLocal<IItem>>(() => { return new ThreadLocal<IItem>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
       executionContexts = new Lazy<ThreadLocal<IExecutionContext>>(() => { return new ThreadLocal<IExecutionContext>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
@@ -92,4 +105,5 @@
       : base("Anonymous") {
       dataType = typeof(IItem);
+      hidden = false;
       cachedActualValues = new Lazy<ThreadLocal<IItem>>(() => { return new ThreadLocal<IItem>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
       executionContexts = new Lazy<ThreadLocal<IExecutionContext>>(() => { return new ThreadLocal<IExecutionContext>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
@@ -99,4 +113,5 @@
       if (dataType == null) throw new ArgumentNullException();
       this.dataType = dataType;
+      hidden = false;
       cachedActualValues = new Lazy<ThreadLocal<IItem>>(() => { return new ThreadLocal<IItem>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
       executionContexts = new Lazy<ThreadLocal<IExecutionContext>>(() => { return new ThreadLocal<IExecutionContext>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
@@ -106,4 +121,5 @@
       if (dataType == null) throw new ArgumentNullException();
       this.dataType = dataType;
+      hidden = false;
       cachedActualValues = new Lazy<ThreadLocal<IItem>>(() => { return new ThreadLocal<IItem>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
       executionContexts = new Lazy<ThreadLocal<IExecutionContext>>(() => { return new ThreadLocal<IExecutionContext>(); }, LazyThreadSafetyMode.ExecutionAndPublication);
@@ -116,4 +132,10 @@
     protected abstract IItem GetActualValue();
     protected abstract void SetActualValue(IItem value);
+
+    public event EventHandler HiddenChanged;
+    protected virtual void OnHiddenChanged() {
+      EventHandler handler = HiddenChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
   }
 }
