/// <summary>Bind to a specified property with inline conversion and conversion parameter</summary>
        public static TBindable Bind <TBindable, TSource, TParam, TDest>(
            this TBindable bindable,
            BindableProperty targetProperty,
            string path      = bindingContextPath,
            BindingMode mode = BindingMode.Default,
            Func <TSource, TParam, TDest> convert     = null,
            Func <TDest, TParam, TSource> convertBack = null,
            object converterParameter = null,
            string stringFormat       = null,
            object source             = null,
            object targetNullValue    = null,
            object fallbackValue      = null
            ) where TBindable : BindableObject
        {
            VerifyExperimental();
            var converter = new FuncConverter <TSource, TDest, TParam>(convert, convertBack);

            bindable.SetBinding(
                targetProperty,
                new Binding(path, mode, converter, converterParameter, stringFormat, source)
            {
                TargetNullValue = targetNullValue,
                FallbackValue   = fallbackValue
            });
            return(bindable);
        }
        /// <summary>Bind to the default property with inline conversion</summary>
        public static TBindable Bind <TBindable, TSource, TDest>(
            this TBindable bindable,
            string path      = bindingContextPath,
            BindingMode mode = BindingMode.Default,
            Func <TSource, TDest> convert     = null,
            Func <TDest, TSource> convertBack = null,
            object converterParameter         = null,
            string stringFormat    = null,
            object source          = null,
            object targetNullValue = null,
            object fallbackValue   = null
            ) where TBindable : BindableObject
        {
            VerifyExperimental();
            var converter = new FuncConverter <TSource, TDest, object>(convert, convertBack);

            bindable.Bind(
                DefaultBindableProperties.GetFor(bindable),
                path, mode, converter, converterParameter, stringFormat, source, targetNullValue, fallbackValue
                );
            return(bindable);
        }