Beispiel #1
0
        protected override void Invoke(object parameter)
        {
            if (DestType != null && !string.IsNullOrEmpty(DestMethod))
            {
                MethodInfo mInfo = DestType.GetMethod(DestMethod, BindingFlags.Public | BindingFlags.Static);
                if (mInfo != null)
                {
                    if (IsDirect)
                    {
                        object o1 = mInfo.Invoke(DestObject, (object[])DestParas);
                        if (Target != null && TargetProperty != null)
                        {
                            Target.SetValue(TargetProperty, o1);
                        }
                    }
                    else
                    {
                        List <object> l1 = new List <object>();
                        switch (parameter.GetType().FullName)
                        {
                        case "System.Windows.Controls.CalendarSelectionChangedEventArgs":
                            var    c1   = parameter as System.Windows.Controls.SelectionChangedEventArgs;
                            string date = c1.AddedItems.Count > 0 ? ((DateTime)c1.AddedItems[0]).ToString("yyyy-MM-dd") : "";
                            l1.Add(date);
                            l1.Add(this.ParasObject);
                            l1.Add(this.DestParas);
                            break;

                        case "System.Windows.Controls.SelectionChangedEventArgs":
                            string date2 = this.ParasObject != null ? (DateTime.Parse(this.ParasObject.ToString())).ToString("yyyy-MM-dd") : "";
                            l1.Add(date2);
                            l1.Add(this.ParasObject);
                            l1.Add(this.DestParas);
                            break;

                        case "System.Windows.RoutedEventArgs":
                        case "System.Windows.Controls.TextChangedEventArgs":
                            l1.Add(this.ParasObject);
                            l1.Add(this.DestParas);
                            break;

                        default: break;
                        }
                        object o1 = mInfo.Invoke(DestObject, l1.ToArray());
                        if (Target != null && TargetProperty != null)
                        {
                            Target.SetValue(TargetProperty, o1);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        protected override void Invoke(object parameter)
        {
            if (DestType != null && !string.IsNullOrEmpty(DestMethod))
            {
                MethodInfo mInfo = null;
                if (ParameterTypes.Count > 0)
                {
                    var ts = from s1 in this.ParameterTypes select Type.GetType(s1);

                    mInfo = DestType.GetMethod(DestMethod, ts.ToArray());
                }
                else
                {
                    mInfo = DestType.GetMethod(DestMethod);
                }
                if (mInfo != null)
                {
                    object o1 = mInfo.Invoke(TargetObject, (object[])MethodParameters);
                }
            }
        }