0
konvertieren

Ich habe Probleme beim Konvertieren der folgenden ziemlich geradlinig C# -Code in vb.net 4.0, die ich verstehe, hat anonyme Delegierte. Ich habe es noch nicht herausgefunden.VB.net Neuling versucht, einige C# Code

_combo.DataBound += (sender, args) => 
            { 
             var item = _combo.FindItemByValue(values[0].ToString()); 
             if (item != null) 
              item.Selected = true; 
            }; 

Ich habe das versucht folgende

_combo.DataBound += Function(sender, args) 
             Dim item = _combo.FindItemByValue(values(0).ToString()) 
             If item IsNot Nothing Then 
              item.Selected = True 
             End If 

            End Function 

Aber der Compiler beschwert sich, dass Databound kann nicht direkt aufgerufen werden, hat aber mit RaiseEvents

+1

Ich bin kein .net-Typ, aber ich bin wirklich neugierig (nebenbei), warum jemand Code von C# in vb konvertieren würde. Ich bin mir sicher, dass es einen guten Grund gibt, aber was ist es? – skaffman

+0

Dies wird aus einem Forenbeitrag für ein Problem, an dem ich gerade arbeite, gezogen. Das Projekt ist vb.net (nicht meine Stärke) und die Diskussion über das Thema, mit dem ich es zu tun habe, ist alles in C#. –

+1

Ah, fair genug. Macht Sinn. Mein Beileid. – skaffman

Antwort

2

AddHandler _combo.DataBound, Funktion (Sender aufgerufen werden , args) ... End Funktion ist ich denke richtige Syntax.

+0

Dies ist der richtige Weg, es inline mit einem anonymen Delegierten zu tun, danke. Sehen Sie meine Antwort für eine Möglichkeit, es in ein gewöhnliches Ereignis zu verwandeln und zu delegieren. –

1

Ich denke, ich habe es herausgefunden.

erklären ein Ereignis

Privat Ereignis OnCombo_DataBound

Verwenden Raise (ByVal Wie Arraylist-Werte) es

für die Veranstaltung
RaiseEvent OnCombo_DataBound(values) 

erstellen Handler Feuer

Private Sub Combo_DataBound(ByVal values As System.Collections.ArrayList) Handles OnCombo_DataBound 
       Dim item = _combo.FindItemByValue(values(0).ToString()) 
       If item IsNot Nothing Then 
        item.Selected = True 
       End If 
      End Sub