次のような観察可能なコレクションの階層があります。
interface IItem
{
ObservableCollection<IItem> Children { get; }
}
IItem
(または ) を指定すると、すべての子アイテムObservableCollection<IItem>
を再帰的に含む他の監視可能なコレクションを構築したいと考えています。IItem
このコレクションは、(たとえば) WPF リスト ビューのデータ ソースとして使用されます。
これらの項目のいずれかを変更して追加の子を持つようにすると、結果の監視可能なコレクションが更新されます。循環参照がないことに注意してください。
私はCompositeCollection クラスを認識しており、これが役立つはずだと確信しています (必要なのは、 の各子の複合コレクションを再帰的に含む複合コレクションChildren
だけだと思います) が、適切な方法がわかりませんこのクラスには、子を必要な複合コレクションに「テンプレート化」する機能がないため、これを行います。