J'ai ajouté un événement à un contrôle utilisateur et j'appelle l'événement dans la fenêtre de consommation du contrôle utilisateur,
Ma question est la suivante : quel code le compilateur génère-t-il lorsque nous assignons un gestionnaire d'événement via l'IDE ?
Ainsi, je peux également utiliser quelque chose de similaire pour écrire automatiquement le gestionnaire d'événement au moment de l'exécution.
Je sais que nous pouvons écrire un gestionnaire d'événement, par exemple le gestionnaire d'événement que j'ai écrit ici :
SearchControl.SearchChangedEvent += new RoutedEventHandler(SearchControl_SearchChanged);
L'erreur qui se produit dans ce cas est qu'il n'y a pas de correspondance de surcharge, j'essaie donc de faire la même chose que le compilateur par le biais du code. Comment le compilateur connaît-il automatiquement les arguments ?
EDIT : Solution.
J'ai trouvé dans cet article le sujet de préoccupation qui m'avait laissé perplexe : http://msdn.microsoft.com/hi-in/magazine/cc785480%28en-us%29.aspx
En "Aperçu des événements routés" l'auteur écrit :
Pour s'en convaincre, il suffit de se rendre dans le constructeur de de votre classe, cliquez avec le bouton droit de la souris sur l'élément InitializeComponent, et sélectionnez Go To Definition dans le L'éditeur affichera un fichier de code L'éditeur affichera un fichier de code généré (avec une de nom .i.g.cs ou .i.g.vb) contenant le code qui n'est pas contenant le code qui est normalement normalement généré au moment de la compilation.
J'ai trouvé le code derrière généré !
#line 6 "..\..\Window1.xaml"
this.myButton.Click +=
new System.Windows.RoutedEventHandler(
this.myButton_Click);
Merci, pour ceux qui ont été un peu déroutés par l'énoncé du problème. J'espère que c'est maintenant plus clair (c'était comme si je ne pouvais pas expliquer le problème jusqu'à ce que je trouve la solution :)