【问题标题】:RadListView SelectedIndexChanged is firing each time a new item is added每次添加新项目时都会触发 RadListView SelectedIndexChanged
【发布时间】: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 事件中,您可以检查布尔值。如果为真则忽略其余代码,否则执行代码。
  • 我一直在考虑这个,但我认为有一个更简单的解决方案,比如将所选项目设置为无并保持不变。

标签: c# selectedindexchanged radlistview


【解决方案1】:

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

【讨论】:

  • 这样我在重新绑定数据源时遇到问题,当我更改文件夹和文件列表更改时它保持不变。
  • @MarioM 我假设您解决了您的问题,因为您将其标记为已回答,可能是因为需要调用 DataBind()
  • 不,winforms 版本没有 databind() 函数,但我创建了一个空 List,我已将其设置为 listview 作为数据源,然后在更改原始列表后我已设置它作为数据源返回,这样它就得到了更新。
猜你喜欢
  • 2017-02-13
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多