ContentElement.AddHandler Méthode

Définition

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

Surcharges

AddHandler(RoutedEvent, Delegate)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

AddHandler(RoutedEvent, Delegate, Boolean)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel. Spécifiez handledEventsToo comme true d’appeler le gestionnaire fourni pour l’événement routé qui avait déjà été marqué comme géré par un autre élément le long de l’itinéraire d’événement.

AddHandler(RoutedEvent, Delegate)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

public:
 virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)

Paramètres

routedEvent
RoutedEvent

Identificateur de l’événement routé à gérer.

handler
Delegate

Référence à l’implémentation du gestionnaire.

Implémente

Remarques

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans déclencher d’exception. Toutefois, le gestionnaire est appelé plusieurs fois lorsque l’événement est géré. Par conséquent, réfléchissez à la façon dont ce comportement peut avoir des effets secondaires qui doivent être pris en compte dans votre implémentation de gestionnaire.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « add » pour le modèle d’accès aux événements Microsoft .NET d’un événement routé personnalisé.

S’applique à

AddHandler(RoutedEvent, Delegate, Boolean)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel. Spécifiez handledEventsToo comme true d’appeler le gestionnaire fourni pour l’événement routé qui avait déjà été marqué comme géré par un autre élément le long de l’itinéraire d’événement.

public:
 void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)

Paramètres

routedEvent
RoutedEvent

Identificateur de l’événement.routed à gérer.

handler
Delegate

Référence à l’implémentation du gestionnaire.

handledEventsToo
Boolean

true d’inscrire le gestionnaire de sorte qu’il soit appelé même lorsque l’événement routé est marqué comme géré dans ses données d’événement ; false d’inscrire le gestionnaire avec la condition par défaut qu’il ne sera pas appelé si l’événement routé est déjà marqué comme géré.

La valeur par défaut est false.

Ne demandez pas régulièrement de réacheminer un événement routé.

Exemples

L’exemple suivant implémente un gestionnaire appelé sur l’événement Initialized sur une page qui attache un gestionnaire défini à l’un des éléments nommés de la page à l’aide de handledEventsTootrue. Ce gestionnaire est appelé même si un autre élément le long de l’itinéraire a marqué les données d’événement partagées comme gérées avant d’atteindre l’élément de gestion dans l’itinéraire.

void PrimeHandledToo(object sender, EventArgs e)
{
    dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
    dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub

Remarques

Le traitement des événements d’entrée de bas niveau de manière pratique est une tâche complexe. De nombreux contrôles implémentent le comportement où un certain événement est marqué comme géré et remplacé par un autre événement plus intuitif. En règle générale, un contrôle marque uniquement un événement d’entrée de plateforme comme géré s’il existe une intention de conception pour le faire. Dans certains scénarios, ces intentions de conception peuvent ne pas être ce que votre gestion particulière de l’événement d’entrée nécessite. C’est pour ces scénarios que l’inscription de gestionnaires auprès de handledEventsToo en tant que true est appropriée. Mais vous ne devez pas le faire régulièrement. L’appel de gestionnaires en réponse à tous les événements, même si gérés compliquera votre propre logique de traitement des événements d’application. Vous pouvez voir une diminution des performances si la logique du gestionnaire est importante. Vous devez réserver l’utilisation des gestionnaires d’attachement pour les événements déjà gérés pour les situations où vous avez déjà découvert pendant le processus de développement que certains contrôles gèrent des événements que vous souhaitez toujours gérer avec la logique d’application.

Une autre technique permettant d’éviter le comportement de gestion des classes de certaines combinaisons de contrôles d’événements consiste à utiliser l’alternative d’aperçu de cet événement. Par exemple, si MouseLeftButtonDown est marquée comme gérée par la gestion des classes, vous pouvez ajouter des gestionnaires pour PreviewMouseLeftButtonDown à la place.

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans déclencher d’exception. Toutefois, le gestionnaire est appelé plusieurs fois lorsque l’événement est géré. Par conséquent, réfléchissez à la façon dont ce comportement peut avoir des effets secondaires qui doivent être pris en compte dans votre implémentation de gestionnaire.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « add » pour le modèle d’accès aux événements Microsoft .NET d’un événement routé personnalisé.

S’applique à