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

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

2
Muchas gracias por tu ayuda
Juan Pablo Gomez

1
Me alegro de ayudar a Juan .. :)
Rohit Vats

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.