Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight DataPager事件参数_Silverlight_Event Handling_Datapager_Page Index Changed - Fatal编程技术网

Silverlight DataPager事件参数

Silverlight DataPager事件参数,silverlight,event-handling,datapager,page-index-changed,Silverlight,Event Handling,Datapager,Page Index Changed,我正在silverlight应用程序中使用DataPager控件。对于不同的数据网格,我有不同的寻呼机,并且希望对所有数据网格的PageIndexChanged事件使用相同的事件处理程序。委托必须将EventArgs对象作为参数。我可以使用此对象“返回”触发事件的控件吗?发送方参数是对触发事件的对象的引用 因此,如果您想访问数据寻呼机,应该这样做:- DataPager dp = (DataPager)sender; 以下是我在F#中的两个场景: 情景1 let pageIndexChang

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

发送方参数是对触发事件的对象的引用

因此,如果您想访问
数据寻呼机
,应该这样做:-

 DataPager dp = (DataPager)sender;

以下是我在F#中的两个场景:

情景1

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

pager.PageIndexChanged.AddHandler(pageIndexChanged)

编译器接受这一点,但我对args无能为力,我发誓我在升级到f#4和silverlight 4之前尝试过这一点,但它不起作用,但现在它起作用了


PageIndexChanged事件只接受一个参数的委托,并且必须是EventArg@philbrowndotcom:嗯。。。你从哪里得到的?它是一个事件,它的签名是
public event handler PageIndexChanged
,因此它接受
void(object,EventArgs)
的委托,我肯定在这里遗漏了一些东西。我在F#工作,我不知道这有多大区别。我编写的所有其他处理程序都使用RoutedEventHandler作为唯一的参数,我可以使用OriginalSource来获取射击控制。我也一直在使用.Add而不是.AddHandler。我对.NET还比较陌生,所以这个东西对我来说还是有点模糊。@philbrowndotcom:不幸的是,F#对我来说是“模糊的”。在C#中,这很简单。这可能也在F#中,但你需要一个F#家伙来告诉你。
let pageIndexChanged (args : EventArgs) = 
    // Do something
    ()

pager.PageIndexChanged.Add(pageIndexChanged)