2012-04-11 1 views
0

Я пытаюсь использовать некоторый код C#, который расширяется в функциональности GridView в проекте VB.NET. Код, который я использую, - от here.Преобразование реализации события C# в VB.NET

В коде C# есть определение события для GroupHeader:

/// <summary> 
/// Event triggered after a row for group header be inserted 
/// </summary> 
public event GroupEvent GroupHeader; 

Это расширяется, например, на вышеуказанном веб-сайте:

protected void Page_Load(object sender, EventArgs e) 
{ 
    GridViewHelper helper = new GridViewHelper(this.GridView1); 
    helper.RegisterGroup("ShipRegion", true, true); 
    helper.RegisterGroup("ShipName", true, true); 
    helper.GroupHeader += new GroupEvent(helper_GroupHeader); 
    helper.ApplyGroupSort(); 
} 

private void helper_GroupHeader(string groupName, object[] values, GridViewRow row) 
{ 
    if (groupName == "ShipRegion") 
    { 
     row.BackColor = Color.LightGray; 
     row.Cells[0].Text = "&nbsp;&nbsp;" + row.Cells[0].Text; 
    } 
    else if (groupName == "ShipName") 
    { 
     row.BackColor = Color.FromArgb(236, 236, 236); 
     row.Cells[0].Text = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + row.Cells[0].Text; 
    } 
} 

Мой вопрос, как я могу преобразовать это код для VB.NET?

Я преобразовал реализацию мероприятий, как так:

Private Sub helper_GroupHeader(ByVal groupName As String, ByVal values As Object(), ByVal row As GridViewRow) 
    Try 
     If groupName = "ITEM#" Then 
      row.BackColor = Color.LightBlue 
      row.Cells(0).Text = "&nbsp;&nbsp;" & row.Cells(0).Text 
     End If 
    Catch ex As Exception 

    End Try 
End Sub 

Как можно затем вызвать (поднять?) Это событие с VB.NET?

ответ

4

Вы ищете AddHandler:

Protected Sub Page_Load(sender As Object, e As EventArgs) 
    Dim helper As New GridViewHelper(Me.GridView1) 
    helper.RegisterGroup("ShipRegion", True, True) 
    helper.RegisterGroup("ShipName", True, True) 
    AddHandler helper.GroupHeader, AddressOf helper_GroupHeader 
    helper.ApplyGroupSort() 
End Sub 

я предполагаю что событие неявно повышается с GridViewHelper.

+0

Это сработало отлично, спасибо Тим. – johnmcp

1

Вы бы подписаться на событие с помощью AddHandler:

AddHandler GroupHeader, AddressOf helper_GroupHeader 

И поднять событие, используя RaiseEvent:

RaiseEvent GroupHeader()