我有一个JSON文件中的以下数据,我想在表单中添加为Combobox的数据源:
"opr": [
{
"name": "John",
"code": "JS"
},
{
"name": "Diana",
"code": "DC"
},
{
"name": "Cashier",
"code": "CS"
}
],
“name”是我想在表单中显示的字符串,而“code”是每个名称的包含值(假如我选择John,那么“JS”将显示在另一个文本框中“)
这是我将要使用的课程:
Public Class Opr
Public Property name As String
Public Property code As String
End Class
Public Class cgOpr
Public Property opr As Opr()
End Class
以前我使用For Each迭代所有ID并使用Items.Add添加它们,但我想知道我是否可以使用Datasource。据我所知,我需要将数组转换为列表,但我还没弄清楚如何。
我正在使用JSON.NET进行解析。提前谢谢。
答案 0 :(得分:1)
您也可以使用数组作为数据源。
Dim data As cgOpr = JsonConvert.DeserializeObject(Of cgOpr)(jsonString)
combobox.ValueMember = "code"
combobox.DisplayMember = "name"
combobox.DataSource = data.opr
然后,您可以使用combobox.SelectedItem
或combobox.SelectedValue
来访问所选数据
Dim selected As Opr = DirectCast(combobox.SelectedItem, Opr)
Dim selectedCode As String = selected.code
' Or
Dim selectedCode As String = combobox.SelectedValue.ToString()