Ich versuche, eine Bindung für eine Combobox
mit einer class property
hinzuzufügen. Die Eigenschaft ist eine Aufzählung. Ich habe es geschafft, die Artikel von der enum
auf die Combobox
vielleicht ein wenig unorthodox zu laden, aber es funktioniert. (Verbesserungsvorschläge sind ebenfalls willkommen) Wenn dann das Formular geladen wird, zeigt das Combobox
das aktive Geschlecht an und alle Optionen sind im Dropdown-Menü.Bind Objekteigenschaft zu Combobox
Aber wenn ich den Fokus der Combobox
auf die button
ändern, um das Ergebnis zu testen, wird es wieder männlich (in meinem Test möchte ich das Geschlecht auf weiblich ändern).
Wie kann ich sicherstellen, dass der neue Gender-Wert an mein Objekt übergeben wird?
Dies ist mein Codebeispiel
Public Class Form1
Private Personobject As Person
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Personobject = New Person
Personobject.Gender = GenderEnum.Male
Dim enumType As Type = GetType(GenderEnum)
Dim names() As String = [Enum].GetNames(enumType)
For Each s As String In names
ComboBox1.Items.Add(s)
Next
ComboBox1.DataBindings.Add("Text", Personobject, "Gender")
End Sub
Private Enum GenderEnum
Male
Female
End Enum
Private Class Person
Public Property Gender As GenderEnum
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Debug.Print(Personobject.Gender.ToString)
End Sub
End Class
Ich bekomme einen Fehler in dieser Zeile 'Dim genderList als neue Liste (von Geschlecht) ([Enum] .GetValues (GetType (Geschlecht)))' es wird das Geschlecht nicht akzeptieren und die möglichen Korrekturen sind nicht verfügbar. Muss ich etwas importieren? –
In der Antwort behoben. Sie müssen es in ein Array von 'Gender' umwandeln, so dass es' [Enum] .GetValues (GetType (Geschlecht)) ist. OfType (Of Gender) ' – Fabio
Typ 'Geschlecht' ist nicht definiert. Trotzdem bleibt der Fehler bestehen. –