public static void AddTapEventHandler(object target, EventElement.TapDelegate evt) { Delegate handlers; if (AttachablePropertyServices.TryGetProperty(target, TapEvent, out handlers)) { handlers = Delegate.Combine(handlers, evt); } else { handlers = evt; } AttachablePropertyServices.SetProperty(target, TapEvent, handlers); }
public void WriteValueOfEventAsDelegate() { XamlSchemaContext xsc = new XamlSchemaContext(); XamlObjectWriter ow = new XamlObjectWriter(xsc); XamlType eventElementXT = xsc.GetXamlType(typeof(EventElement)); ow.WriteStartObject(eventElementXT); ow.WriteStartMember(eventElementXT.GetMember("Tap")); EventElement.TapDelegate tapDelegate = new EventElement.TapDelegate(methodToCall); ow.WriteValue(tapDelegate); ow.WriteEndMember(); ow.WriteEndObject(); EventElement eventElement = ((EventElement)ow.Result); tapEventFired = false; eventElement.RaiseTapEvent(); if (!tapEventFired) { throw new Exception("Tap event did not fire"); } }