Vb.net ListViewItem中的只读属性ListView-如何实现?

Vb.net ListViewItem中的只读属性ListView-如何实现?,vb.net,collections,Vb.net,Collections,也许有人知道ListView指针是如何在ListViewItem的只读属性ListView中存储/删除的?它是如何实施的?我知道ListViewItems存储在ListViewItemCollection中,它具有新的构造函数(所有者为ListView),但我不知道ListView的指针如何在ListViewItem的只读属性中添加/删除 ListViewItem在成员字段中引用其包含的ListView。将ListViewItem添加到ListView时,ListView会更新此成员(这发生在私

也许有人知道ListView指针是如何在ListViewItem的只读属性ListView中存储/删除的?它是如何实施的?我知道ListViewItems存储在ListViewItemCollection中,它具有新的构造函数(所有者为ListView),但我不知道ListView的指针如何在ListViewItem的只读属性中添加/删除

ListViewItem在成员字段中引用其包含的ListView。将ListViewItem添加到ListView时,ListView会更新此成员(这发生在私有函数ListView.InsertItems中)

只读ListView属性提供对此内部成员字段的公共只读访问。(成员字段本身不是只读的。)


要了解更多信息,请使用Analyze命令跟踪可以分配内部listView字段的各种函数。请注意,由于listView成员是内部的,并且修改它的函数是私有的或内部的,因此您不应该在自己的代码中依赖此实现。

谢谢,我已经看到了代码,但对我来说有些奇怪。。。在ListView.InsertItems-ListView调用友元子ListViewItem.Host并存储对其自身的引用,但为什么创建对象ListViewItem时友元子主机不可见?因为Host是ListViewItem的内部(友元)方法。您的代码永远不需要调用它:相反,当您将ListViewItem连接到ListView时(通过Add方法),ListView会为您调用它(在InsertItems中)。所以主机没有必要公开。