/// <summary> /// Register a dependency / bindable property /// </summary> /// <param name="name">The property name</param> /// <param name="propertyType">The property type</param> /// <param name="ownerType">The owner type</param> /// <param name="defaultValue">The default value</param> /// <param name="propertyChangedCallback">Callback to executed on property changed</param> /// <returns>The registred dependecy property</returns> public static DependencyProperty Register(string name, Type propertyType, Type ownerType, object defaultValue = null, PropertyChangedCallback propertyChangedCallback = null) { #if UWP return(DependencyProperty.Register(name, propertyType, ownerType, new PropertyMetadata(defaultValue, propertyChangedCallback))); #else return(DependencyProperty.Create(name, propertyType, ownerType, defaultValue, propertyChanged: (obj, oldValue, newValue) => { if (propertyChangedCallback != null) { propertyChangedCallback(obj, new DependencyPropertyChangedEventArgs(newValue, oldValue, null)); } })); #endif }