VB等效的C#事件创建

我正在尝试将GridView类扩展为始终显示页眉和页脚,即使数据源为空时也使用我在网上找到的代码( 链接 )。 但是,代码是用C#编写的,但我使用的是VB。

什么是以下的VB等价物?

public event MustAddARowHandler MustAddARow; 

有没有办法绕过VB.NET不允许事件返回一个类型?

此外,由于下面的错误,我无法转换以下function。

码:

 Protected Function OnMustAddARow(ByVal data As IEnumerable) As IEnumerable If MustAddARow = Nothing Then 'Error on MustAddARow' Throw New NullReferenceException("The datasource has no rows. You " _ & "must handle the 'MustAddARow' Event.") End If Return MustAddARow(data) 'Error on MustAddARow' End Function 

错误:公共事件MustAddARow(data As System.Collections.IEnumerable)’是一个事件,不能直接调用。 使用’RaiseEvent’语句来引发事件。

像这样:

 Public Event MustAddRow(data As IEnumerable) 

注意:这个答案实际上是错误的。 我的错。 显示的语法是正确的(这就是为什么我不会立即删除此答案),但它不会编译,因为事件 – 通常是多播代理 – 不允许在VB中返回值。净。


活动宣言:

 Public Event MustAddRow As MustAddRowHandler 

委托类型声明:(这是上述的先决条件)

 Public Delegate Function MustAddRowHandler(ByVal data As IEnumerable) As IEnumerable 

正如我在其他post( 链接 )的答案中所描述的,我将C#代码编译成我在VB代码中使用的DLL。