Pregunta

Estoy usando un control DataPager en mi aplicación Silverlight. Tengo diferentes localizadores para diferentes DataGrids y desea utilizar el mismo controlador de eventos para el evento PageIndexChanged para todos ellos. El delegado debe tener un objeto EventArgs como argumento. ¿Puedo utilizar este objeto de "volver" al control desde el que se generó el evento?

¿Fue útil?

Solución

Juro intentado esto antes de actualizar a f # 4 y Silverlight 4 y no funcionó, pero ahora lo hace ...

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

Otros consejos

El parámetro remitente es la referencia al objeto que generó el evento.

Así que si quieres llegar al DataPager esto debe hacerlo: -

 DataPager dp = (DataPager)sender;

Aquí están mis dos escenarios en F #:

Escenario 1

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

pager.PageIndexChanged.AddHandler(pageIndexChanged)

¿Qué yeilds el error

  

Se esperaba que esta expresión para tener   escriba manejador de sucesos
  pero aquí tiene un tipo
  Manejador de sucesos -> unidad

Escenario 2

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

pager.PageIndexChanged.Add(pageIndexChanged)

El compilador acepta esto, pero no puede hacer nada con argumentos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top