【发布时间】:2026-01-06 09:00:02
【问题描述】:
我有一个ICollectionView 接口的扩展,允许我处理多选 (IMultiSelectCollectionView)。我想提供一个与BindingListCollectionView 兼容的实现,但该类是密封的。有谁知道为什么做出这个设计决定?
【问题讨论】:
-
密封通常在某人依赖于无法更改的类的实现细节时完成。最好的例子是 .NET 中的
ImageList类,它是原生 ImageList 控件的包装器。您不能给ListView任何其他类型的ImageList,而不是包装本机ImageList 的ImageList,因为ListView 要求 Imagelist 包装本机控件。即使你想创建一个支持 alpha 混合 PNG 图像的后代 ImageList,你也不能使用它。所以 BindingListCollectionView 是密封的,因为有人依赖违反了它的封装。
标签: c# .net wpf icollectionview