Я пытаюсь добавить привязку для Combobox
с class property
. Свойство - это перечисление. Мне удалось загрузить предметы из enum
в Combobox
, может быть, немного неортодоксально, но он работает. (предложения по улучшению также приветствуются). Затем, когда форма загружается, Combobox
показывает активный пол и все параметры находятся в выпадающем меню.Свойство Bind object для combobox
Но когда я сфокусирую фокус Combobox
на button
, чтобы проверить результат, он возвращается обратно к мужчине (в моем тесте я хочу изменить пол на самку).
Как я могу убедиться, что новое гендерное значение передано моему объекту?
Это мой пример кода
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
Я получаю сообщение об ошибке в этой строке 'Dim genderList As New List (Of Gender) ([Enum] .GetValues (GetType (Пол)))' он не примет пол и потенциальные исправления недоступны. Нужно ли мне что-то импортировать? –
Исправлено в ответе. Вам нужно преобразовать его в массив «Пол», поэтому он будет «[Enum] .GetValues (GetType (Пол)). OfType (Of Gender)' – Fabio
Тип «Пол» не определен. Тем не менее ошибка сохраняется. –