diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/ExampleService.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/ExampleService.cs index dd64abfb26..eac4e91e19 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/ExampleService.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/ExampleService.cs @@ -67,5 +67,25 @@ namespace ICSharpCode.WpfDesign.Tests.XamlDom // TODO: add this test, check for correct setting of NameScope //TestHelperLog.Log("ExampleDependencyObject.OnPropertyChanged " + e.Property.Name); } + + public static readonly DependencyProperty ExampleProperty = DependencyProperty.RegisterAttached( + "Example", typeof(string), typeof(ExampleDependencyObject) + ); + + public static string GetExample(DependencyObject element) + { + TestHelperLog.Log("ExampleDependencyObject.GetExample"); + return (string)element.GetValue(ExampleProperty); + } + + public static void SetExample(DependencyObject element, string value) + { + TestHelperLog.Log("ExampleDependencyObject.SetExample"); + element.SetValue(ExampleProperty, value); + } + } + + public class DerivedExampleDependencyObject : ExampleDependencyObject + { } } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/SimpleLoadTests.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/SimpleLoadTests.cs index 5e52a42617..966bf37b5d 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/SimpleLoadTests.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/XamlDom/SimpleLoadTests.cs @@ -418,5 +418,18 @@ namespace ICSharpCode.WpfDesign.Tests.XamlDom "); } + + [Test] + public void UsingAttachedPropertyOnDerivedClass() + { + TestLoading(@" + + + "); + } } } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlParser.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlParser.cs index 04f3a330d8..7006c57cf7 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlParser.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlParser.cs @@ -478,6 +478,11 @@ namespace ICSharpCode.WpfDesign.XamlDom return new XamlDependencyPropertyInfo((DependencyProperty)field.GetValue(null), true); } } + + if (elementType.BaseType != null) { + return TryFindAttachedProperty(elementType.BaseType, propertyName); + } + return null; }