更新数据源后,Telerik 的 RadListView 未绘制项目

Telerik's RadListView is not drawing items after updating datasource

我正在使用 RadListView control from Telerik UI for WindowsForms

我一步一步做的是这样的:

  1. 为控件设置数据源。

  2. 手动向下滚动垂直滚动条

  3. 计时器计时结束后,数据源会在运行时更新。

此时,在滚动和数据源发生变化后,滚动条保持在相同的位置(如我所料),但列表视图没有正确更新布局,任何项目都在控件中绘制。

我发现解决此问题的唯一方法是手动向上滚动(仅向上)。

我尝试使用 EnsureItemVisiblePerformLayoutInvalidateScrollTo 方法,我还切换了 Visible 属性,但任何解决布局问题的方法。

我该如何解决?

您是否尝试调用 Application.DoEvents()?

ListView 未更新,因为您的数据源不支持通知。为了实现这一点,您的数据源应该实现 IBIndingList,而您的对象应该实现 INotifyPropertyChanged。例如,您可以使用 BindingList 而不是 IEnumerable。 this article 中提供了这方面的示例 - 尽管本文使用 RadGridView,但在数据源方面,方法是相同的。

那么您可以查看 RadListView 本身的 DataBinding article