我在 silverlight 应用程序中使用 DataPager 控件。我对不同的 DataGrid 有不同的寻呼机,并且希望对所有这些寻呼机的 PageIndexChanged 事件使用相同的事件处理程序。委托必须采用 EventArgs 对象作为参数。我可以使用此对象“返回”触发事件的控件吗?

有帮助吗?

解决方案

我发誓我在升级到 f# 4 和 silverlight 4 之前尝试过这个,但它不起作用,但现在它起作用了......

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

其他提示

在发送器参数是参考该触发事件的对象。

所以,如果你想获得的DataPager这应该这样做: -

 DataPager dp = (DataPager)sender;

下面是在F#我的两种方案:

方案1

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

pager.PageIndexChanged.AddHandler(pageIndexChanged)

哪些yeilds误差

  

此表达预期具有   键入事件处理结果   但这里有一个类型点击   事件处理程序 - >单元

方案2

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

pager.PageIndexChanged.Add(pageIndexChanged)

在编译器接受这一点,但我无能为力与ARGS

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top