有没有办法在排序项目时保持列表框的索引?

时间:2013-02-27 13:26:25

标签: vb.net dictionary listbox

我正在使用listbox从xml文件中获取项目,每个项目都有id,name和content, 但我把列表框中的名字放入名单,并将其他数据存储在变量中,如字典(整数:索引,字符串:名称),并保持列表框中的项目与字典中的项目之间的关系,现在一切都很好,但如果我对项目进行排序(在修改名称后)它会丢失索引顺序,:(

排序之前!

listbox ---------------------------------- dictionary ----------- ----

索引|值-------------------------- key |值

0 | admin ------------------------------ 0 |管理员
1 | adam.ley -------------------------- 1 | adam.ley
2 | jean.clift --------------------------- 2 | jean.clift

将adam.ley更改为零,并对列表进行排序!!

0 | admin ------------------------------ 0 |管理员
1 | jean.clift --------------------------- 1 |零
2 |零-------------------------------- 2 | jean.clift

谢谢大家:)

2 个答案:

答案 0 :(得分:1)

我认为你必须上课。

有多个细节。 像

类会说“MyItem”有成员   (整数id,   字符串名称,   字符串内容)

这将是类结构,并将此项(类)添加到列表框中 在c#中有可能在vb.net中有这样的东西

进一步参考检查此链接并获得提示。 Using ListBox to store multiple pieces of data

答案 1 :(得分:1)

所以在我按照以下方式创建一个类之后:

Public Class ListItem

    Private _Id As Integer
    Private _Name As String

    ' Initialize the object.
    Public Sub New(ByVal Id As Integer, ByVal Name As String)
        _Id = Id
        _Name = Name
    End Sub

    ' Return the object's Name.
    Public Overrides Function ToString() As String
        Return _Name
    End Function

    ' Return the object's Id.
    Public Function Id() As Integer
        Return _Id
    End Function

End Class

将新项目添加到列表框:

ListBox1.Items.Add(New ListItem(Id, Name))

它完美无缺:)!

但我需要的是获取具有Id = 3的项目的索引,例如!!

谢谢大家!祝你有愉快的一天;)