0

我需要在ListBox中跟踪当前所选项目,以关闭选定项目为null时表单上的其他控件。I try to use SelectedIndexChanged event, but it not raise when selected item is null.

你能不能给点建议?

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

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

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

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

4

2 回答 2

1

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

编辑:您确实是正确的,当您更改 DataSource 时,您不会得到 SelectedIndexChanged。我建议您在更改 DataSource之前立即明确设置 SelectedIndex=-1

于 2012-05-15T13:17:56.087 回答
0

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

于 2012-05-15T22:23:02.773 回答