public static void TriggerEvent(this PhoneApplicationPage page, String key, String value)
 {
     Event anEvent = new Event(key, value, page.GetHit());
     anEvent.Trigger();
 }
 void theEvent_OnEventTriggered(Event theEvent, EventArgs e)
 {
     DeregisterEvent(theEvent);
     if (Events.Contains(theEvent)) {
         Events.Remove(theEvent);
     }
 }
 void theEvent_OnEventTriggering(Event theEvent, EventArgs e)
 {
     if (!Events.Contains(theEvent)) {
         Events.Add(theEvent);
     }
 }
 public void TriggerEvent(String key, String value)
 {
     Event anEvent = new Event(key, value);
     anEvent.Trigger();
 }
 public void RegisterEvent(Event theEvent)
 {
     theEvent.OnEventTriggering += theEvent_OnEventTriggering;
     theEvent.OnEventTriggered += theEvent_OnEventTriggered;
 }
 public void DeregisterEvent(Event theEvent)
 {
     theEvent.OnEventTriggering -= theEvent_OnEventTriggering;
     theEvent.OnEventTriggered -= theEvent_OnEventTriggered;
 }
        void theEvent_OnEventTriggered(Event theEvent, EventArgs e)
        {
            DeregisterEvent(theEvent);
            if (Events.Contains(theEvent)) {
                Events.Remove(theEvent);
            }

            if (Events.Count == 0 && EndDate != new DateTime(0001, 01, 01)) {
                if (OnHitEnding != null) {
                    OnHitEnding(this, EventArgs.Empty);
                }
                RequestEnd();
            }
        }
 // Trigger a custom event by creating an Event object and sending it a Trigger message
 private void CustomEventButton_Click(object sender, RoutedEventArgs e)
 {
     Event customEvent = new Event("test-event", "custom-event", this.GetHit());
     customEvent.Trigger();
 }