Index: Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs =================================================================== diff -u -rcf4f627d49e3c133f1017502b7fc355d40982032 -r53f640e7100d9527310acb18280120658f4b2182 --- Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs (.../PropertyGridView.cs) (revision cf4f627d49e3c133f1017502b7fc355d40982032) +++ Core/Common/src/Core.Common.Gui/Forms/PropertyGridView/PropertyGridView.cs (.../PropertyGridView.cs) (revision 53f640e7100d9527310acb18280120658f4b2182) @@ -114,6 +114,12 @@ } set { + // Prevent redundant updates + if (data != null && data.Equals(value)) + { + return; + } + if (observable != null) { observable.Detach(this); Index: Core/Common/test/Core.Common.Gui.Test/Forms/PropertyGridView/PropertyGridViewTest.cs =================================================================== diff -u -rcf4f627d49e3c133f1017502b7fc355d40982032 -r53f640e7100d9527310acb18280120658f4b2182 --- Core/Common/test/Core.Common.Gui.Test/Forms/PropertyGridView/PropertyGridViewTest.cs (.../PropertyGridViewTest.cs) (revision cf4f627d49e3c133f1017502b7fc355d40982032) +++ Core/Common/test/Core.Common.Gui.Test/Forms/PropertyGridView/PropertyGridViewTest.cs (.../PropertyGridViewTest.cs) (revision 53f640e7100d9527310acb18280120658f4b2182) @@ -61,5 +61,30 @@ } mockRepository.VerifyAll(); } + + [Test] + public void Data_SetSameDataObject_NoRedundantViewUpdate() + { + // Setup + var mockRepository = new MockRepository(); + var propertyResolverStub = mockRepository.Stub(); + mockRepository.ReplayAll(); + + var dataObject = new object(); + + using (var propertyGridView = new Gui.Forms.PropertyGridView.PropertyGridView(propertyResolverStub)) + { + propertyGridView.Data = dataObject; + + var selectedObject = propertyGridView.SelectedObject; + + // Call + propertyGridView.Data = dataObject; + + // Assert + Assert.AreSame(selectedObject, propertyGridView.SelectedObject); + } + mockRepository.VerifyAll(); + } } } \ No newline at end of file