Index: src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.Designer.cs =================================================================== diff -u -r960cfedf9261238cc1bdc27045f01982868eb553 -r01cae4cdf5c3b8dbc3be47098562f0e13fa89d01 --- src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.Designer.cs (.../PropertyGrid.Designer.cs) (revision 960cfedf9261238cc1bdc27045f01982868eb553) +++ src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.Designer.cs (.../PropertyGrid.Designer.cs) (revision 01cae4cdf5c3b8dbc3be47098562f0e13fa89d01) @@ -13,11 +13,6 @@ /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { - if (disposing && refreshTimer != null) - { - refreshTimer.Dispose(); - } - if (disposing && (components != null)) { components.Dispose(); Index: src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.cs =================================================================== diff -u -rc3c85cbf6ee8796f8c7aec00505945f8e611923d -r01cae4cdf5c3b8dbc3be47098562f0e13fa89d01 --- src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.cs (.../PropertyGrid.cs) (revision c3c85cbf6ee8796f8c7aec00505945f8e611923d) +++ src/DeltaShell/DeltaShell.Gui/Forms/PropertyGrid/PropertyGrid.cs (.../PropertyGrid.cs) (revision 01cae4cdf5c3b8dbc3be47098562f0e13fa89d01) @@ -1,21 +1,17 @@ using System; using System.Collections; using System.Collections.Generic; -using System.ComponentModel; using System.Drawing; using System.Linq; -using System.Reflection; using System.Security.Permissions; using System.Windows.Forms; using DelftTools.Controls; using DelftTools.Shell.Core; using DelftTools.Shell.Gui; using DelftTools.Shell.Gui.Forms; -using DelftTools.Utils.Collections; using DelftTools.Utils.PropertyBag.Dynamic; using DeltaShell.Gui.Properties; using log4net; -using PropertyInfo = DelftTools.Shell.Gui.PropertyInfo; namespace DeltaShell.Gui.Forms.PropertyGrid { @@ -64,20 +60,6 @@ gui.SelectionChanged += GuiSelectionChanged; HideTabsButton(); - - refreshTimer = new Timer(); - refreshTimer.Tick += delegate - { - if (IsInEditMode(propertyGrid1)) - { - return; - } - propertyGrid1.Refresh(); - refreshTimer.Stop(); - }; - refreshTimer.Interval = 300; - refreshTimer.Enabled = true; - refreshTimer.Start(); } private void HideTabsButton() @@ -88,25 +70,9 @@ strip.Items[4].Visible = false; } - //from: http://stackoverflow.com/questions/7553423/c-sharp-propertygrid-check-if-a-value-is-currently-beeing-edited - private static bool IsInEditMode(System.Windows.Forms.PropertyGrid grid) - { - if (grid == null) - { - throw new ArgumentNullException("grid"); - } - - - var gridView = (Control) grid.GetType().GetField("gridView", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(grid); - var edit = (Control) gridView.GetType().GetField("edit", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(gridView); - var dropDownHolder = (Control) gridView.GetType().GetField("dropDownHolder", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(gridView); - - return ((edit != null) && (edit.Visible & edit.Focused)) || ((dropDownHolder != null) && (dropDownHolder.Visible)); - } - public void UpdateObserver() { - refreshTimer.Start(); + propertyGrid1.Refresh(); } public object GetObjectProperties(object sourceData) @@ -151,7 +117,7 @@ public override void Refresh() { - refreshTimer.Start(); + propertyGrid1.Refresh(); } private object SelectedObject @@ -322,7 +288,6 @@ #region enable tab key navigation on propertygrid - private readonly Timer refreshTimer; private IObservable observableProperty; ///