Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

WPF Fehlermeldung: Führen Sie zuerst eine Trennung durch. Beim verschieben von Child Elementen

02.02.2019 (👁180)

WPF Fehlermeldung: Führen Sie zuerst eine Trennung durch. Beim verschieben von Child Elementen

 

Fehlermeldung

System.InvalidOperationException

  HResult=0x80131509

  Message=Bei dem angegebenen Element handelt es sich bereits um das logische untergeordnete Element eines anderen Elements.

Führen Sie zuerst eine Trennung durch.

  Source=PresentationFramework

 

 

 

Fehler:

Der Fehler wird verursacht, wenn man versucht ein Button Child-Element aus einem Stackpanel im Beispiel zu übertragen auf eine andere Zelle

C# Code mit Fehler

Es wird versucht ein Child Element aus dem parent WPF FrameworkElement zu nehmen und in ein anderem Element als Child einzufügen.

StackPanel stackPanel = cellMitarbeiter.Child as StackPanel;

if(stackPanel.Children.Count>0)

{

    //Button BtnMitarbeiter = (Button)stackPanel.Children[0]; //*Error

    Button btn = (ButtonVisualTreeHelper.GetChild(stackPanel, 0); //*error

    cellMaschine.Child = btn;

}

 

 

Lösung:

Im ersten Schritt das Framework Element zuweisen

Dann ein Remove im alten Parent Element

Dann im Schritt 3 das Element als Child einem neuen Parent Element zuweisen

if (cellMitarbeiter.Child.GetType() == typeof(StackPanel))

{

    StackPanel stackPanel = cellMitarbeiter.Child as StackPanel;

    if(stackPanel.Children.Count>0)

    {

        Button btn = (Button) stackPanel.Children[0];  //*step 1

        stackPanel.Children.RemoveAt(0);               //*step 2

        cellMaschine.Child = btn;                      //*step 3

    }

 

}

 

 

 

 

Im Beispiel werden von den unteren Zellen die Einträge zum oberen Bereich verschoben