I have this class
public class Tooth
{
public string Id {get;set;}
}
And this custrom control
public partial class To
I came here for the title of the question but my type was a decimal default value and i solved with this 0.0M https://msdn.microsoft.com/en-us/library/83fhsxwc.aspx
Default value
for DP
does not match your type.
Change
public static readonly DependencyProperty ToothProperty =
DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI),
new PropertyMetadata(0));
to
public static readonly DependencyProperty ToothProperty =
DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI),
new PropertyMetadata(default(Tooth)));
Or simply omit setting default value for your DP:
public static readonly DependencyProperty ToothProperty =
DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI));