Norbert, danke für die Antwort. Ja, ich benutze ObservableCollection. Und vom “Verpeitschen” wird hiermit ausdrücklich Abstand
genommen!
Ich habe das Gefühl, dass ich mir
wirklich mal ein einfaches Beispiel erstellen muss, dass tatsächlich
Eltern, Kinder und Enkel benutzt.
Die Aktualisierung scheitert wie schon
gesagt bereits auf der untersten Ebene des TreeView.
Aber vielleicht kommt der Weg zur Erleuchtung
ja mit der Lösung dieses Problems.
Hier ein Ausschnitt aus der Klasse, die
ich für die unterste Ebene des TreeView benutze (im Original
heissen die Eigenschaften und Klassen alle anders, habe etwas
manipuliert).
Es gibt die Eigenschaften ChildName,
ChildID und eben die Eigenschaft „CollectionGrandchildren“.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| private Data.cCollectionGrandchildren _collectionGrandchildren = Data.cCollectionGrandchildren.LadeInstanz();
public ObservableCollection<Data.cGrandchildren> CollectionGrandchildren { get { //return _collectionArbeitsschritte.CollArbeitsschritte;
myC = new ObservableCollection<Data.cGrandchildren>();
foreach (Data.cGrandchildren item in _collectionGrandchildren.CollGrandchildren) { if (item.ChildID ==_ChildID) myC.Add(item); } return myC; } set { // setter wird eigentlich nicht benutzt CollectionGrandchildren = value; OnPropertyChanged(new PropertyChangedEventArgs("CollectionGrandchildren")); } } } |
So
wird alles zumindest richtig angezeigt. Ändere ich die Namen der
Enkelkinder in meiner Page, die mit cCollectionGrandchildren
interagiert, wird das gleich ins Treeview übernommen. Wenn ein
Enkelkind jedoch in der Page hinzugefügt wird, wird das
ignoriert.
Gebe
ich jedoch die ungefilterte Collection zurück (auskommentierter
Teil, anstatt des Teils mit myC), werden auch neue Enkelkinder sofort
angezeigt.
Gruß, Andreas