Ejemplo n.º 1
0
 public EventRegistration(
     UIElement owner,
     string eventName,
     bool onCapturePhase               = false,
     bool canBubbleNatively            = false,
     HtmlEventFilter?eventFilter       = null,
     HtmlEventExtractor?eventExtractor = null,
     EventArgsParser payloadConverter  = null)
 {
     _owner             = owner;
     _eventName         = eventName;
     _canBubbleNatively = canBubbleNatively;
     _payloadConverter  = payloadConverter;
     if (noRegistrationEventNames.Contains(eventName))
     {
         _subscribeCommand = null;
     }
     else
     {
         _subscribeCommand = () => WindowManagerInterop.RegisterEventOnView(
             _owner.HtmlId,
             eventName,
             onCapturePhase,
             (int)(eventFilter ?? HtmlEventFilter.None),
             (int)(eventExtractor ?? HtmlEventExtractor.None)
             );
     }
 }
Ejemplo n.º 2
0
        internal void RegisterEventHandler(
            string eventName,
            Delegate handler,
            bool onCapturePhase               = false,
            bool canBubbleNatively            = false,
            HtmlEventFilter?eventFilter       = null,
            HtmlEventExtractor?eventExtractor = null,
            EventArgsParser payloadConverter  = null)
        {
            if (this.Log().IsEnabled(LogLevel.Debug))
            {
                this.Log().Debug($"Registering {eventName} on {this}.");
            }

            if (!_eventHandlers.TryGetValue(eventName, out var registration))
            {
                _eventHandlers[eventName] = registration = new EventRegistration(
                    this,
                    eventName,
                    onCapturePhase,
                    canBubbleNatively,
                    eventFilter,
                    eventExtractor,
                    payloadConverter);
            }

            registration.Add(handler);
        }