Bonjour,

J'ai créé une attached property:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static class CustomService
{
        public static readonly DependencyProperty MyPropertyProperty =DependencyProperty.RegisterAttached("MyProperty", typeof(string), typeof(CustomService), new PropertyMetadata(null));
 
        public static void SetMyProperty(DependencyObject target, string value)
        {
            target.SetValue(MyPropertyProperty, value);
        }
 
        [Browsable(true)]
        [AttachedPropertyBrowsableForType(typeof(DependencyObject))]
        public static string GetMyProperty(DependencyObject target)
        {
            return (string)(target.GetValue(MyPropertyProperty));
        }
}
Quand je fait appel à la méthode TypeDescriptor.GetProperties, la propriété n’apparaît pas dans la liste alors que d'autres provenant du Framework (par exemple, InputLanguageManager.InputLanguage) apparaissent.

Même en ajoutant les attributs [Browsable(True)], [AttachedPropertyBrowsableForType(typeof(DispatcherObject))] ou [AttachedPropertyBrowsableForChildrenAttribute(IncludeDescendants = true)], elle n’apparaît pas.

J'ai également essayé en utilisant une classe héritant de DependencyObject au lieu d'une classe statique mais cela ne fonctionne pas non plus.

Par contre, à partir du moment où je lui fixe une valeur, elle apparaît dans cette liste.

Est-ce qu'il existe un moyen "d'enregistrer" automatiquement l'attached property ?

Merci.