| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- using System;
 
- #if XFORMS
 
- using Xamarin.Forms;
 
- using DependencyProperty = Xamarin.Forms.BindableProperty;
 
- #elif WinRT
 
- using Windows.UI.Xaml;
 
- #else
 
- using System.Windows;
 
- #endif
 
- namespace Caliburn.Micro
 
- {
 
-     /// <summary>
 
-     /// Class that abstracts the differences in creating a DepedencyProperty / BindableProperty on the different platforms.
 
-     /// </summary>
 
-     public static class DependencyPropertyHelper
 
-     {
 
-         /// <summary>
 
-         /// Register an attached 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 attached dependecy property</returns>
 
-         public static DependencyProperty RegisterAttached(string name, Type propertyType, Type ownerType, object defaultValue = null, PropertyChangedCallback propertyChangedCallback = null) {
 
- #if XFORMS
 
-             return DependencyProperty.CreateAttached(name, propertyType, ownerType, defaultValue, propertyChanged: (obj, oldValue, newValue) => {
 
-                 if (propertyChangedCallback != null)
 
-                     propertyChangedCallback(obj, new DependencyPropertyChangedEventArgs(newValue, oldValue, null));
 
-             });
 
- #else
 
-             return DependencyProperty.RegisterAttached(name, propertyType, ownerType, new PropertyMetadata(defaultValue, propertyChangedCallback));
 
- #endif
 
-         }
 
-         /// <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 XFORMS
 
-             return DependencyProperty.Create(name, propertyType, ownerType, defaultValue, propertyChanged: (obj, oldValue, newValue) =>
 
-             {
 
-                 if (propertyChangedCallback != null)
 
-                     propertyChangedCallback(obj, new DependencyPropertyChangedEventArgs(newValue, oldValue, null));
 
-             });
 
- #else
 
-             return DependencyProperty.Register(name, propertyType, ownerType, new PropertyMetadata(defaultValue, propertyChangedCallback));
 
- #endif
 
-         }
 
-     }
 
- }
 
 
  |