Silverlight DataPager事件参数
我正在silverlight应用程序中使用DataPager控件。对于不同的数据网格,我有不同的寻呼机,并且希望对所有数据网格的PageIndexChanged事件使用相同的事件处理程序。委托必须将EventArgs对象作为参数。我可以使用此对象“返回”触发事件的控件吗?发送方参数是对触发事件的对象的引用 因此,如果您想访问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
数据寻呼机
,应该这样做:-
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)