Laden...

LogicalChild aus Window oder Panel entfernen

Erstellt von oehrle vor 11 Jahren Letzter Beitrag vor 11 Jahren 938 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 11 Jahren
LogicalChild aus Window oder Panel entfernen

Hallo, beschreibe hier mal mein Problem.
Ich habe ein Fenster mit verschiedenen Panels (Stackpanel). Ich verarbeite in dieser Oberfläche Dateien mit Arbeitsabläufen und Parameterdaten zu jedem Arbeitsablauf.
Also, jeder Arbeitsablauf beinhaltet also mehrere Arbeitgänge. Nun stelle ich den Arbeitsgang grafisch dar, über einen Button. Ich lese nun den Plan ein und alle Arbeitsgänge werden in dem Stackpanel dargestellt, was korrekt funktoniert. Wenn ich jetzt aber einen Arbeitsgang abwähle, muss das Stackpanel ja aktualisiert werden. Ich lösche die Buttons aus dem Stackpanel und übergebe die neu organisierte Liste. Soabld ich den ersten Button wieder in das Stackpanel einfüge möchte, kommt der Fehler:
"Specified element is already the logical child of another element. Disconnect it first"

Jetzt hatte ich gesucht, was der Fehler zu bedeuten hat. Aus dem Stackpanel sind wohl die Controls aus dem VisualTree raus, aber im LogicalTRee hängen die wohl noch drin. Das ist mir aber noch nicht gelungen die da herauszubekommen. Wie bekomme ich die Controls da raus? Kann mir jemand einen Tipp geben?

6.862 Beiträge seit 2003
vor 11 Jahren

Hallo,

Steuerelemente sind keine Daten und man sollte nie in Steuerelementen Daten halten. Wenn du Arbeitsabläufe hast, Listen mit Arbeitsanweisungen etc. sind das Daten. Benutz sowas wie nen ItemsControl und um für die entsprechende Darstellung zu sorgen, benutzt man Templates. Wenn du Daten und Aussehen trennst, kommst du erst gar nicht in die Probleme wo du jetzt hast.

Aus dem Stackpanel sind wohl die Controls aus dem VisualTree raus, aber im LogicalTRee hängen die wohl noch drin. Das geht nicht. Der VisualTree ergibts sich ja aus der Darstellung der Elemente im LogicalTree, daher kann nicht etwas im LogicalTree sein, was nicht im VisualTree ist.

Baka wa shinanakya naoranai.

Mein XING Profil.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 11 Jahren

Hallo,

Steuerelemente sind keine Daten und man sollte nie in Steuerelementen Daten halten. Wenn du Arbeitsabläufe hast, Listen mit Arbeitsanweisungen etc. sind das Daten. Benutz sowas wie nen ItemsControl und um für die entsprechende Darstellung zu sorgen, benutzt man Templates. Wenn du Daten und Aussehen trennst, kommst du erst gar nicht in die Probleme wo du jetzt hast.

Aus dem Stackpanel sind wohl die Controls aus dem VisualTree raus, aber im LogicalTRee hängen die wohl noch drin.
Das geht nicht. Der VisualTree ergibts sich ja aus der Darstellung der Elemente im LogicalTree, daher kann nicht etwas im LogicalTree sein, was nicht im VisualTree ist.

Eigentlich halte ich nur den Namen von dem Arbeitsgang im Content fest. Diesen Namen möchte ich dann mal verwenden, um bei einem Click-Ereignis an die Stelle im Textfile des Arbeitsplanes zu springen. Ist das dann so verkehrt?
Wenn alles aus dem Stackpanel raus gelöscht wurde (Children.Clear()) warum kommt dann i,,er noch dieser Fehler?