我需要跟踪ListBox中当前选定的项目,以便在所选项目变为null时关闭表单上的其他控件。我尝试使用SelectedIndexChanged事件,但是当所选项目为空时它不会引发。
你能告诉我什么吗?
更新:所选项目变为空,因为我使用空集合设置新的DataSource值。这可能是我问题的原因吗?
我需要解释一下。 ListBox表示数据库中的项集合。当用户添加/编辑/删除某些项目时,我通过调用此方法刷新列表框:
private void RefreshList()
{
lbParts.DataSource = this.database.Fetch<part>(string.Empty);
}
从数据库中获取所有项目,将其转换为List<part>
集合并设置为ListBox DataSource。
答案 0 :(得分:1)
这是不正确的。当SelectedItem变为null时,将引发SelectedIndexChanged。在这种情况下,SelectedIndex将为-1。
编辑:你确实是正确的,当你改变DataSource时,你没有得到SelectedIndexChanged。我建议您在之前立即显式设置SelectedIndex = -1 随时更改DataSource
答案 1 :(得分:0)
也许还处理DataSourceChanged事件?如果列表框中的可用选项发生变化,那么我认为这是在表单可用控件上执行刷新的原因吗?