複数のリソースに接続する方法があるかどうか知りたいです。
具体的には、次の問題があります
abstact class BaseClass
{
ObservableCollection<BaseClass>;
}
class GrandSonClass:BaseClass{}
class SonClass:BaseClass{}
class FatherClass:BaseClass
{
CollectionViewSource col = new CollectionViewSource ;
col.Source = Items.SelectMany(p => p.Items);
}
FatherClass のアイテムは ChildrenClass タイプであり、ChildrenClass のアイテムは GrandSonClass タイプです。
私は、FatherClass が所有するすべての GrandSonClass のアイテムにバインドするようにします。
SelectMany を使用するソリューションは良くありません。FatherClass がさらにアイテムを追加するたびに、またそのアイテム (SonClasses) がさらにアイテムを追加するたびに、これを動的に更新する必要があるからです。
これで、通知イベントを書き続けることができましたが、それを行うためのよりスマートな方法があるかどうか疑問に思っていました
-つまり、FatherClass が所有する各アイテムのアイテムとしてソースを定義するだけです。
私はこのデータ構造を持っています
お父さん
| |
|___子1
|-----|___孫1
|-----|___孫2
|___子2
|-------|___GrandChild3
|-------|___GrandChild4
このTreeViewのようなツリーが見たい
お父さん
| |
|___孫1
|___孫2
|___孫3
|___孫4
アイテムは ItemsSource を介して接続されます。子または孫が追加または削除されるたびに、TreeView をデータで更新したい
子は父の ObseravbleCollection であり、garndchildren は子の Observable Collection です (すべて同じタイプのクラスを使用する再帰的な階層データ構造です)