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); } } } } }
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); } } }