我在 Winforms 中有一个虚拟 ListView,可以很好地显示数据库中的内容。项目被异步添加到数据库中,并且当我将滚动条拉到底部时可见。
现在我想确保每当异步线程添加到数据库时,它也会更新 ListView 以便它知道哪个索引应该是底行。在添加 ListView 对象之前,我可以使用 ListBox 执行此操作,在其中我根据 itemheight 和列表框高度设置哪个索引应该是顶部索引:
int numItems = listBox1.ClientSize.Height / listBox1.ItemHeight;
if (listBox1.TopIndex == listBox1.Items.Count - numItems - 1)
listBox1.TopIndex = listBox1.Items.Count - numItems + 1;
不幸的是,ListView 中既不存在 ItemHeight 也不存在 TopIndex。
但主要问题是:我如何告诉虚拟 ListView 它应该显示特定范围的索引 - 或确保显示某些索引?