Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 5872)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj	(revision 5875)
@@ -127,4 +127,10 @@
       <DependentUpon>BatchRunView.cs</DependentUpon>
     </Compile>
+    <Compile Include="ResultValueView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ResultValueView.Designer.cs">
+      <DependentUpon>ResultValueView.cs</DependentUpon>
+    </Compile>
     <Compile Include="RunCollectionBoxPlotView.cs">
       <SubType>UserControl</SubType>
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.cs	(revision 5872)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultCollectionView.cs	(revision 5875)
@@ -43,13 +43,4 @@
     }
 
-    protected override void RegisterItemEvents(IResult item) {
-      base.RegisterItemEvents(item);
-      item.ValueChanged += (o, e) => itemsListView_SelectedIndexChanged(o, e);
-    }
-    protected override void DeregisterItemEvents(IResult item) {
-      item.ValueChanged -= (o, e) => itemsListView_SelectedIndexChanged(o, e);
-      base.DeregisterItemEvents(item);
-    }
-
     protected override IResult CreateItem() {
       return null;
@@ -57,19 +48,10 @@
 
     protected override void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke((Action<object, EventArgs>)itemsListView_SelectedIndexChanged, sender, e);
-      } else {
-        AdjustListViewColumnSizes();
-        if (showDetailsCheckBox.Checked) {
-          if (itemsListView.SelectedItems.Count == 1) {
-            IResult result = (IResult)itemsListView.SelectedItems[0].Tag;
-            detailsGroupBox.Enabled = true;
-            viewHost.Content = result.Value;
-          } else {
-            viewHost.Content = null;
-            detailsGroupBox.Enabled = false;
-          }
-        }
-      }
+      viewHost.ViewType = typeof(ResultValueView);
+      base.itemsListView_SelectedIndexChanged(sender, e);
+    }
+    protected override void showDetailsCheckBox_CheckedChanged(object sender, EventArgs e) {
+      viewHost.ViewType = typeof(ResultValueView);
+      base.showDetailsCheckBox_CheckedChanged(sender, e);
     }
   }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs	(revision 5875)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.Designer.cs	(revision 5875)
@@ -0,0 +1,79 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Optimization.Views {
+  partial class ResultValueView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing) {
+        if (components != null) components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.SuspendLayout();
+      // 
+      // viewHost
+      // 
+      this.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(0, 0);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(359, 274);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
+      // 
+      // ResultValueView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.viewHost);
+      this.Name = "ResultValueView";
+      this.Size = new System.Drawing.Size(359, 274);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.cs	(revision 5875)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/ResultValueView.cs	(revision 5875)
@@ -0,0 +1,79 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Optimization.Views {
+  [View("Result Value View")]
+  [Content(typeof(Result), false)]
+  [Content(typeof(IResult), false)]
+  public sealed partial class ResultValueView : ItemView {
+    public new IResult Content {
+      get { return (IResult)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public override bool ReadOnly {
+      get { return true; }
+      set { /*not needed because results are always readonly */}
+    }
+
+    public ResultValueView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.ValueChanged -= new EventHandler(Content_ValueChanged);
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ValueChanged += new EventHandler(Content_ValueChanged);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        viewHost.Content = null;
+      } else {
+        viewHost.ViewType = null;
+        viewHost.Content = Content.Value;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      viewHost.Enabled = Content != null;
+      viewHost.ReadOnly = this.ReadOnly;
+    }
+
+    private void Content_ValueChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_ValueChanged), sender, e);
+      else {
+        viewHost.Content = Content.Value;
+      }
+    }
+  }
+}
