ListBox.SelectedItem 是空通知

本文关键字:通知 SelectedItem ListBox | 更新日期: 2023-09-27 18:34:08

我需要跟踪列表框中的当前选定项,以便在选定项变为空时关闭窗体上的其他一些控件。我尝试使用"选定索引已更改"事件,但是当所选项目为空时,它不会引发。

你能提供一些建议吗?

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

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

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

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

ListBox.SelectedItem 是空通知

这是

不正确的。 SelectedIndexChanged 在 SelectedItem 变为 null 时引发。 在这种情况下,选定索引将为 -1。

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

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

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