Parmi les petite choses qui peuvent faire mal avec WPF, il existe la DependencyProperty . Cette petite merveille de technologie peu devenir votre pire cauchemar si vous n’adopter pas de suite certaines bonnes pratiques.
Parmi celles-ci il est important de bien faire attention aux valeurs par défaut (UIPropertyMetadata en C# et FrameworkPropertyMetadata en Vb) qui en général se trouve en fin d’instanciation de la DependencyProperty. Il est très important que cette valeur soit explicitement typé! Entendez par là que mettre un String dans un Int32 risque de vous causer bien des tracas… tout comme null en C# ou Empty en Vb pour des types qui ne le supportent pas.
Pour les DependencyProperty de type Double il y a en plus une petite astuce : ajouter une décimale pour forcer un type double (ou “f” en C#) même si il n’y en a pas besoin. De la sorte votre valeur par défaut ne vous posera pas de souci.
Par exemple pour initialiser une propriété de type Double à 69 on peu écrire
VbPublic Shared ReadOnly MaProperty As DependencyProperty = DependencyProperty.Register( "MaProperty", GetType(Double), GetType(MaClass), New UIPropertyMetadata(69.0))C#
public static readonly DependencyProperty MaProperty = DependencyProperty.Register( "MaProperty", typeof(Double), typeof(MaClass), new UIPropertyMetadata(69.0));ou encore pour C#
public static readonly DependencyProperty MaProperty = DependencyProperty.Register( "MaProperty", typeof(Double), typeof(MaClass), new UIPropertyMetadata(69f));