0

我有一个包含“行”列表的列表视图,其中包含“列”列表。现在,我对行和列都使用 List(即,我有一个 List,它是 Rows 对象,我有一个 List,但随着数字变大,更新 GUI 所需的时间和程序的整体性能得到非常糟糕。另外,当项目(行内的列)发生变化时,GUI 不会得到通知,所以我必须做一个 Item.Refresh,这似乎每次都会刷新整个事情,增加了缓慢的性能

是否有任何其他类型的对象可以用来加速整个过程。这意味着它需要满足以下几点: - 更快的列表 - 当我添加新行时,列表视图会更新。有可能,只添加新行而不是整个列表视图。- 当我更改 Columns 对象时,GUI 会更新。如果可能,只有修改后的列对象会受到影响,因此整个 Listview 不会更改。

请注意,在显示列对象的场景背后有相当多的实际计算。我目前正在努力优化这一端,但我很确定使用更好的集合在这里会有很大帮助。

谢谢

4

1 回答 1

2

我相信您正在寻找的是一个可观察的集合

添加项目时,此集合类型将触发 CollectionChanged 事件。您无需刷新集合,因为 WPF 控件开箱即用地支持此操作。

笔记

更新单个元素时不会触发 CollectionChanged 事件。如果您希望这些更新显示在 UI 上,则集合中的对象应实现INotifyPropertyChanged

于 2013-03-27T19:26:59.143 回答