Pergunta

Estou usando um controle de datapager no meu aplicativo Silverlight. Eu tenho pagers diferentes para diferentes datagrids e quero usar o mesmo manipulador de eventos para o evento PageIndexchanged para todos eles. O delegado deve considerar um objeto EventArgs como um argumento. Posso usar esse objeto para "voltar" ao controle do qual o evento foi demitido?

Foi útil?

Solução

Eu juro que tentei isso antes de atualizar para f# 4 e Silverlight 4 e não funcionou, mas agora funciona ...

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

Outras dicas

O parâmetro do remetente é a referência ao objeto que demitiu o evento.

Então, se você quiser chegar ao DataPager Isso deve servir:-

 DataPager dp = (DataPager)sender;

Aqui estão meus dois cenários em F#:

Cenário 1

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

pager.PageIndexChanged.AddHandler(pageIndexChanged)

Que você edifica o erro

Esperava -se que essa expressão tivesse tipo de EventHandler
Mas aqui tem tipo
EventHandler -> unidade

Cenário 2

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

pager.PageIndexChanged.Add(pageIndexChanged)

O compilador aceita isso, mas eu não posso fazer nada com args

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top