Domyślny typ wartości nie jest zgodny z typem właściwości

83

Mam tę klasę

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

I ta kontrola 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)); 

}

Mój problem występuje po właściwości zależności Add Tooth , ten błąd występuje

Domyślny typ wartości nie jest zgodny z typem właściwości

Co dokładnie oznacza ten błąd? Jaki jest obecny sposób ustawienia tegoDP

Juan Pablo Gomez
źródło

Odpowiedzi:

163

Default valuedla DPnie pasuje do Twojego typu.

Zmiana

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

do

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

Lub po prostu pomiń ustawienie domyślnej wartości swojego DP:

public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI));
Rohit Vats
źródło
2
Wielkie brawa za pomoc
Juan Pablo Gomez
1
Cieszę się, że mogłem pomóc Juanowi… :)
Rohit Vats