每次添加新项目时都会触发 RadListView SelectedIndexChanged

Posted

技术标签:

【中文标题】每次添加新项目时都会触发 RadListView SelectedIndexChanged【英文标题】:RadListView SelectedIndexChanged is firing each time a new item is added 【发布时间】:2015-08-03 17:10:13 【问题描述】:

我对 C# Winforms 的 RadListView 有一个问题,如果我向列表视图添加 300 个项目,则 SelectedIndexChanged 会触发 300 次。 我该怎么做才能让它在第一个项目上保持选中状态而不是在每次添加新项目时触发?因为它每次都会选择最后一项。

这是添加代码:

 this.lstFileList.Items.Add(item);

【问题讨论】:

简单但有点脏的代码:在添加新项目之前删除事件处理程序 (-=SelectIndexChanged),如果 RadListView 已填充,则再次附加。 谢谢,如果我找不到另一个解决方案,这将是最后一个解决方案。 你使用的是telerik winforms还是asp.net? 另一种解决方案是使用布尔值(例如 bool dontFireEvent = false),并在添加新项目后立即将其设置为 true。在 SelectIndexChanged 事件中,您可以检查布尔值。如果为真则忽略其余代码,否则执行代码。 我一直在考虑这个,但我认为有一个更简单的解决方案,比如将所选项目设置为无并保持不变。 【参考方案1】:

您可以使用DataSource 属性直接绑定到IEnumerable,而不是一次添加一个。

【讨论】:

这样我在重新绑定数据源时遇到问题,当我更改文件夹和文件列表更改时它保持不变。 @MarioM 我假设您解决了您的问题,因为您将其标记为已回答,可能是因为需要调用 DataBind() 不,winforms 版本没有 databind() 函数,但我创建了一个空 List,我已将其设置为 listview 作为数据源,然后在更改原始列表后我已设置它作为数据源返回,这样它就得到了更新。

以上是关于每次添加新项目时都会触发 RadListView SelectedIndexChanged的主要内容,如果未能解决你的问题,请参考以下文章

在 Firebase iOS SDK 中,每次删除孩子时都会触发 .childAdded。我怎样才能阻止这个?

每次刷新应用程序时都会触发 Flutter web Firebase onAuthStateChanges

javascript 考虑到所有页面中始终存在心愿单,每次添加或删除项目时都会更新整个心愿单

AppWidgetProvider - 每次对任何 AppWidget 文件进行更改时都会触发 onUpdate 吗?

pom.xml 每次添加新依赖时都会出错

每次访问页面时都会触发地理位置代码,而不仅仅是在初始加载或刷新时