WPF: Entfernen von "sich selbst" aus dem übergeordneten container
Ich habe eine Schaltfläche in mein Benutzer Steuern, welche sollte verwendet werden, um den Benutzer zu löschen Steuerung aus übergeordneten Containers. Dies ist der Weg, ich habe kodiert es heute.
private void RemoveRoleButton_Click(object sender, RoutedEventArgs e)
{
if (ConfirmRoleRemoval())
{
Panel parentPanel = (Panel)this.Parent;
parentPanel.Children.Remove(this);
}
}
private bool ConfirmRoleRemoval()
{
return MessageBox.Show("Are you sure [...]
}
Ist es normal, es zu tun auf diese Weise in WPF?
- Anstatt zu entfernen, könnten Sie versuchen, die Einstellung seiner
Visibility
EigenschaftCollapsed
, sollte den gleichen visuellen Effekt, und wird nicht dazu führen, zu viel chaos im hintergrund. - haben einen guten Punkt ... außer, dass wenn "diese" ist ein Usercontrol und es ist ein Kind von einem anderen Usercontrol, dann diese.Parent null zurück ... also vorsichtig sein
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es sieht gut aus für mich. Als Mike Hillberg schreibt in seinem blog:
So, macht es Sinn, dass "entfernen" ein Kind wird auch durch das Objekt-Modell der Eltern.
Als kleiner Hinweis: vielleicht möchten Sie erwägen, werfen "schöne" Ausnahme (oder sogar deaktivieren Sie die Taste), wenn das übergeordnete Element nicht, ein Panel (anstatt zu warten, für die
InvalidCastException
).