/// <summary> /// Handles the registered event and fires the corresponding Tealium event variable. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> internal static void EventActionHandler(object sender, object args) { object context = args; if (sender != null && typeof(DependencyObject).GetTypeInfo().IsAssignableFrom(sender.GetType().GetTypeInfo())) { TealiumEvent evt = GetEvent((DependencyObject)sender); if (evt != null) { //evt.DataContext = context; string varName = evt.VariableName; if (string.IsNullOrWhiteSpace(varName)) { varName = Constants.DEFAULT_CUSTOM_EVENT_NAME; } Dictionary <string, object> vars = new Dictionary <string, object>(); foreach (var item in evt.Parameters) { item.DataContext = context; string paramName = item.PropertyName; object paramVal = item.GetValue(ParameterValue.PropertyValueProperty); vars.Add(paramName, paramVal); } TealiumTagger.Instance.TrackCustomEvent(varName, vars); } } }
/// <summary> /// Sets the attached property for the registered Tealium event. /// </summary> /// <param name="obj"></param> /// <param name="value"></param> public static void SetEvent(DependencyObject obj, TealiumEvent value) { obj.SetValue(EventProperty, value); }