From 6017e79d6b0047ae43e9ec9001623a2a34ce7da7 Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Sat, 12 Mar 2011 22:47:11 +0000 Subject: [PATCH] PropertyGrid: fixed UIElement object's name binding. --- .../Implementation/PropertyGrid.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs index 9caa7645..5d52e69c 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs @@ -86,10 +86,9 @@ namespace Microsoft.Windows.Controls.PropertyGrid protected virtual void OnSelectedObjectChanged(object oldValue, object newValue) { - SelectedObjectType = newValue.GetType(); + SetSelectedObjectNameBinding(newValue); - if (newValue is FrameworkElement) - SelectedObjectName = (newValue as FrameworkElement).Name; + SelectedObjectType = newValue.GetType(); _propertyItemsCache = GetObjectProperties(newValue); @@ -166,7 +165,7 @@ namespace Microsoft.Windows.Controls.PropertyGrid if (newValue != null) newValue.IsSelected = true; - } + } #endregion //SelectedProperty @@ -305,6 +304,17 @@ namespace Microsoft.Windows.Controls.PropertyGrid return propertyCollection; } + private void SetSelectedObjectNameBinding(object selectedObject) + { + if (selectedObject is FrameworkElement) + { + var binding = new Binding("Name"); + binding.Source = selectedObject; + binding.Mode = BindingMode.OneWay; + BindingOperations.SetBinding(this, PropertyGrid.SelectedObjectNameProperty, binding); + } + } + #endregion //Methods } }