Caliburn.Micro.Parser.CreateParameter C# (CSharp) Метод

CreateParameter() статический приватный Метод

static private CreateParameter ( DependencyObject target, string parameter ) : Parameter
target System.Windows.DependencyObject
parameter string
Результат Parameter
        static Parameter CreateParameter(DependencyObject target, string parameter)
        {
            var actualParameter = new Parameter();

            if(parameter.StartsWith("'") && parameter.EndsWith("'"))
                actualParameter.Value = parameter.Substring(1, parameter.Length - 2);
            else if(MessageBinder.SpecialValues.Contains(parameter.ToLower()) || char.IsNumber(parameter[0]))
                actualParameter.Value = parameter;
            else if (target is FrameworkElement)
            {
                var fe = (FrameworkElement)target;
                var nameAndBindingMode = parameter.Split(':').Select(x => x.Trim()).ToArray();
                var index = nameAndBindingMode[0].IndexOf('.');

                RoutedEventHandler handler = null;
                handler = (s, e) =>{
                    BindParameter(
                        fe,
                        actualParameter,
                        index == -1 ? nameAndBindingMode[0] : nameAndBindingMode[0].Substring(0, index),
                        index == -1 ? null : nameAndBindingMode[0].Substring(index + 1),
                        nameAndBindingMode.Length == 2 ? (BindingMode)Enum.Parse(typeof(BindingMode), nameAndBindingMode[1], true) : BindingMode.OneWay
                        );
                    fe.Loaded -= handler;
                };

                if ((bool)fe.GetValue(View.IsLoadedProperty))
                    handler(null, null);
                else fe.Loaded += handler;
            }

            return actualParameter;
        }