This is only slightly connected to the generics approach of this project, but another followup idea.
Usually a Dependency Property is backed by a common .NET property that uses SetValue() and GetValue in it's accessor methods.
It might be worth to think about an attribute on an auto-property instead, like
[DependencyProperty("propertyName")]
public int BackingProperty { get; set; }