web-dev-qa-db-fra.com

Le type de valeur par défaut ne correspond pas au type de la propriété

J'ai cette classe

public class Tooth
{
    public string Id {get;set;}
}

Et ce contrôle custrom

public partial class ToothUI : UserControl
{
    public ToothUI()
    {
        InitializeComponent();
    }

    public Tooth Tooth
    {
        get { return (Tooth)GetValue(ToothProperty); }
        set
        {
            SetValue(ToothProperty, value);
            NombrePieza.Text =   value.Id.Replace("_",String.Empty);
        }
    }
    public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI), new PropertyMetadata(0)); 

}

Mon problème est après Add propriété de dépendance des dents, cette erreur se produit

Le type de valeur par défaut ne correspond pas au type de la propriété

Que signifie exactement cette erreur? Quelle est la façon actuelle de définir ce DP

67
Juan Pablo Gomez

Default value pour DP ne correspond pas à votre type.

Changement

public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI),
                                         new PropertyMetadata(0));

à

public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI),
                                      new PropertyMetadata(default(Tooth)));

Ou omettez simplement de définir la valeur par défaut pour votre DP:

public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI));
126
Rohit Vats

Je suis venu ici pour le titre de la question mais mon type était une valeur par défaut décimale et j'ai résolu avec ce 0,0M https://msdn.Microsoft.com/en-us/library/83fhsxwc.aspx

3
dpineda