El tipo de valor predeterminado no coincide con el tipo de propiedad

82

Tengo esta clase

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

Y este control industrial

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)); 

}

Mi problema es después de la propiedad de dependencia Add Tooth , este error ocurre

El tipo de valor predeterminado no coincide con el tipo de propiedad

¿Qué significa exactamente este error? ¿Cuál es la forma actual de configurar esto?DP

Juan Pablo Gómez
fuente

Respuestas:

160

Default valueporque DPno coincide con tu tipo.

Cambio

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

a

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

O simplemente omita la configuración del valor predeterminado para su DP:

public static readonly DependencyProperty ToothProperty =
        DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI));
Cubas Rohit
fuente
2
Muchas gracias por tu ayuda
Juan Pablo Gomez
1
Me alegro de ayudar a Juan .. :)
Rohit Vats