2011-07-11 10 views
1

私はマルチセレクション(IMultiSelectCollectionView)を処理できるように、ICollectionViewインターフェイスの拡張機能を持っています。私はBindingListCollectionViewと互換性のある実装を提供したいが、そのクラスは封印されている。誰でもこの設計決定がなされた理由を知っていますか?BindingListCollectionViewが封印されているのはなぜですか?

+1

封印は、通常、誰かが変更できないクラスの実装の詳細に依存する場合に行われます。最も良い例は、.NETのImageListクラスです。これは、ネイティブImageListコントロールのラッパーです。 ListView **にはImagelistがネイティブコントロールをラップする必要があるため、ネイティブImageListをラップするImageList以外の他の種類のImageListをListViewに渡すことはできません。たとえアルファブレンドPNG画像をサポートする子孫ImageListを作成したいとしても、それを使うことはできません。したがって、BindingListCollectionViewは、そのカプセル化に違反しているために封印されます。 –

答えて

1

通常、クラスのシールは、元のクラスの基本的な動作を劇的に変更する派生クラスの保護手段を示します。とにかく、私はそのクラスを封印するための本当の意味が分かりません。

関連する問題