为什么ListViewGroup密封?

时间:2009-08-25 07:39:50

标签: .net winforms listview

我可以继承ListViewItem甚至ListViewItem.ListViewSubItem,但我不能继承ListViewGroup。

为什么?

2 个答案:

答案 0 :(得分:2)

ListViewGroup是密封的,因为您无法添加或更改其功能。该实现不会在ListViewGroup生效

ListViewGroup是一个友好的本机Win32控件包装器。您不能下降希望添加功能的新类 - 该功能不在类中。


这与ImageList被封存的原因相同。如果将图像列表分配给ListView,则该图像列表必须是本机ImageList控件的包装器,这就是列表视图的方式。你不能从ImageList下载以支持alpha混合的PNG图像列表 - 它只是不起作用。

当封装不良时,类会被密封,并且下降没有意义,因为没有什么可以合法地改变。

答案 1 :(得分:0)

微软无法回答“它的设计”,许多类都是密封的,这使得开发变得非常困难,在某些情况下,我们使用Reflector了解类的系列是如何工作的,我们重新创建了自己的类扩展功能。其中一个是构建验证和错误模板,但是除了它的设计之外没有答案。