public class BaseAttachedProperty<Parent, Property> where Parent : BaseAttachedProperty<Parent, Property>, new()
{
public event Action<DependencyObject, DependencyPropertyChangedEventArgs> ValueChanged = delegate { };
public event Action<DependencyObject, object> ValueUpdated = delegate { };
public static Parent Instance { get; private set; } = new Parent();
public static readonly DependencyProperty ValueProperty = DependencyProperty.RegisterAttached(
"Value",
typeof( Property ),
typeof( BaseAttachedProperty<Parent, Property> ),