Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

FrameworkElement.RemoveLogicalChild-Methode: (Object)

 

Veröffentlicht: Oktober 2016

Entfernt das angegebene Objekt aus dem logischen Baum dieses Elements. FrameworkElement aktualisiert die übergeordneten Zeiger des betroffenen logischen Baums, um ihn mit der Löschung synchron zu halten.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

protected internal void RemoveLogicalChild(
	object child
)

Parameter

child
Type: System.Object

Das zu entfernende Element.

Verwenden Sie diese Methode für die Implementierung von Sammlungen von Objekten, die logischen untergeordneten Elemente eines Elements darstellen. Dies kann in-Getter oder Setter Klassenhandler des Changed Ereignisse, Konstruktoren oder in den Auflistungstypen selbst.

Für Autoren von Steuerelementen Bearbeiten der logischen Struktur auf dieser Ebene nicht die empfohlene Vorgehensweise besteht, sofern keines der bereitgestellten Basissteuerelementklasse Inhaltsmodelle geeignet sind. Betrachten Sie Unterklassen auf der Ebene der ContentControl, ItemsControl, und HeaderedItemsControl. Diese Klassen stellen ein Inhaltsmodell mit besonderer Erzwingung von untergeordneten Elementen dedizierten APIs, sowie Unterstützung für andere Features, die in der Regel wünschenswert, in einem WPF Steuerelement, z. B. Stilen mithilfe von Vorlagen.

Das folgende Beispiel implementiert eine Child Eigenschaft in einem benutzerdefinierten FrameworkElement Implementierung des eigenen visuellen Layers ausführt. Set-Accessor der Eigenschaft ist so konzipiert, dass wenn der Wert ändert, der alte Wert von der logischen Struktur als auch eine klassenspezifische visuelle Sammlung entfernt wird. Die Werte werden zwischengespeichert, und der neue Wert wird dann sowohl die standardmäßigen WPF-Framework Ebene logische Struktur und der benutzerdefinierten visuellen Auflistung hinzugefügt.

public virtual UIElement Child
{
    get
    {
        return _child;
    }
    set
    {
        if (_child != value)
        {
            //need to remove old element from logical tree
            if (_child != null)
            {
                OnDetachChild(_child);
                RemoveLogicalChild(_child);
            }

            _vc.Clear();

            if (value != null)
            {
                //add to visual
                _vc.Add(value);
                //add to logical
                AddLogicalChild(value);
            }

            //always add the overlay child back into the visual tree if its set
            if (_overlayVisual != null)
                _vc.Add(_overlayVisual);

            //cache the new child
            _child = value;

            //notify derived types of the new child
            if (value != null)
                OnAttachChild(_child);

            InvalidateMeasure();
        }
    }
}

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: