【问题标题】:Telerik's RadListView is not drawing items after updating datasourceTelerik 的 RadListView 更新数据源后不绘制项目
【发布时间】:2016-04-20 06:56:21
【问题描述】:

我正在使用 Telerik UI for WindowsFormsRadListView 控件。

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

  1. 为控件设置一个数据源。

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

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

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

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

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

我该如何解决?

【问题讨论】:

  • 什么是 DataSource - 什么类型的对象?大多数控件不会“看到”对简单 List(of T) 或其中项目的更改。
  • @Plutonix 它是一个自定义类型的 IEnumerable,它只公开了一些字符串属性

标签: c# .net vb.net winforms telerik


【解决方案1】:

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

【讨论】:

  • 这不是答案,也不是好的建议。见:Is DoEvents evil
  • @Plutonix:我只是想帮忙……前段时间我在使用 Telerik 组件时遇到了一些问题,Application.DoEvents() 确实对我有用……
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 2014-01-29
    • 2018-06-13
    相关资源
    最近更新 更多