关于c#:ListBox.SelectedItem为null通知

ListBox.SelectedItem is null notification

我需要跟踪ListBox中的当前选定项,以在选定项变为null时关闭窗体上的其他控件。我尝试使用SelectedIndexChanged事件,但选择当项目为null,不会提高。

您能建议点什么吗?

更新:所选项目变为空,因为我使用空集合设置了新的DataSource值。可能是我遇到问题的原因吗?

我需要解释。 ListBox表示数据库中项目的集合。当用户添加/编辑/删除某些项目时,我通过调用以下方法刷新列表框:

1
2
3
4
private void RefreshList()
{
     lbParts.DataSource = this.database.Fetch<part>(string.Empty);
}

它从数据库中提取了所有项目,将其转换为List<part>集合,并设置为ListBox DataSource。


那是不正确的。当SelectedItem变为null时,将引发SelectedIndexChanged。在这种情况下,SelectedIndex将为-1。

编辑:您确实很正确,当您更改数据源时,不会得到SelectedIndexChanged。我建议您在更改DataSource

之前立即显式设置SelectedIndex = -1


也许还处理DataSourceChanged事件?如果列表框中可用的选项发生变化,那么我认为这是对表单可用控件进行刷新的原因吗?