- Код: Выделить всё
Public Class MaterialBase
Sub New()
End Sub
Private _studyStatus As StudyStatusEnum
<DisplayName("Статус кабинета")> _
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
<TypeConverter(GetType(EnumTypeConverter))> _
Public Property StudyStatus() As StudyStatusEnum
Get
Return _studyStatus
End Get
Set(ByVal value As StudyStatusEnum)
_studyStatus = value
End Set
End Property
End class
- Код: Выделить всё
Public Enum StudyStatusEnum As Integer
<Description("комната")> _
room
<Description("кабинет")> _
study
<Description("лаборатория")> _
laboratory
End Enum
Теперь это свойство я связываю с создаваемым ComboBox:
- Код: Выделить всё
sub main
dim PartObj as new MaterialBase
dim name as string = "StudyStatus"
dim tlpPart as new TableLayoutPanel
cbx = CreateObject.ComboBox(name , DockStyle.Top, PartObj, tlpPart, GetType(StudyStatusEnum))
end sub
Public Function ComboBox(ByVal name As String, ByVal DockType As DockStyle, ByVal PartObj As Object, ByVal ParentObject As Object, enumType as Type) As ComboBox
Dim cbx As ComboBox
cbx = New ComboBox
With cbx
.Name = "cbx" & name
.Dock = DockType
.Visible = True
.DataSource = [Enum].GetValues(enumType)
.DataBindings.Add("Text", PartObj, name)
End With
ParentObject.Controls.Add(cbx)
Return cbx
End Function
Вот вопросы:
1. как правильно связать enum с comboBox, чтобы заполнялось значениями из Description?
2. С каким свойством ComboBox связывать свойство моего объекта, чтобы по выбор пункта списка соответствовал свойству объекта?