ListBox.SelectedItem vs ListBox.Items(SelectedIndex)

时间:2013-01-20 23:30:07

标签: vb.net winforms listbox

当我进行更改并将其提交到数据库时,我正在尝试更改ListBox项的数据。但是,为ListBox.SelectedItem分配新值似乎不起作用,但如果我使用ListBox.Items(lstAlbums.SelectedIndex),则它似乎会更改表单中的实际数据。

我还通过GetHashCode测试了对象,看起来它们也是一样的。如果我尝试比较它们,Boolean也是如此。有人知道为什么会这样吗?以下是我的代码部分:

Private Sub DataUpdatedCallback(ByVal updatedAlbum As Album)
    ' ( lstAlbums.Items(lstAlbums.SelectedIndex) Is _
    '                           lstAlbums.SelectedItem ) == TRUE
    ' for some reason using lstAlbums.SelectedItem doesn't change the object data
    lstAlbums.Items(lstAlbums.SelectedIndex) = updatedAlbum
End Sub

2 个答案:

答案 0 :(得分:0)

请改用SelectedValue。您的基础对象通常具有可用于此目的的关键字段。确保您已相应设置ValueMember属性。

答案 1 :(得分:0)

传递给.SelectedItem的引用必须是列表中的现有项之一,您不能使用该属性来修改.Item的内容。您当前的代码

lstAlbums.Items(lstAlbums.SelectedIndex) = updatedAlbum

是对的。