Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
LogicalChild aus Window oder Panel entfernen
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 404
Herkunft: Germany

Themenstarter:

LogicalChild aus Window oder Panel entfernen

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

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.
Zitat
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.
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 404
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

Zitat von talla
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.
Zitat
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?
private Nachricht | Beiträge des Benutzers