Question

J'utilise un contrôle DataPager dans mon application silverlight. J'ai différents téléavertisseurs pour différentes DataGrid et que vous souhaitez utiliser le même gestionnaire d'événements pour l'événement PageIndexChanged pour tous. Le délégué doit prendre un objet EventArgs comme argument. Puis-je utiliser cet objet pour « revenir » au contrôle à partir de laquelle l'événement a été déclenché?

Était-ce utile?

La solution

Je jure que j'ai essayé ceci avant de passer à f # 4 et silverlight 4 et cela n'a pas fonctionné, mais maintenant il fait ...

http://connect.microsoft.com/VisualStudio/feedback/details/524645/f-add-event-handler-to-form-anonymous-function-is-required

Autres conseils

Le paramètre de l'expéditeur est la référence à l'objet qui a déclenché l'événement.

Donc, si vous voulez aller à la DataPager cela devrait le faire: -

 DataPager dp = (DataPager)sender;

Voici mes deux scénarios en F #:

Scénario 1

let pageIndexChanged (args : EventHandler<EventArgs>) = 
    // Do something
    ()

pager.PageIndexChanged.AddHandler(pageIndexChanged)

Ce qui yeilds l'erreur

  

Cette expression devait avoir   
de type EventHandler   mais ici a le type
  EventHandler -> unit

Scénario 2

let pageIndexChanged (args : EventArgs) = 
    // Do something
    ()

pager.PageIndexChanged.Add(pageIndexChanged)

Le compilateur accepte, mais je ne peux rien faire avec args

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top