Wissen, ob in XAML keine DependencyProperty festgelegt wurde

Ich habe ein Steuerelement, das einen DP mit dem Namen PlacementTarget verfügbar macht (der an ein untergeordnetes Popup-FWIW gebunden ist).

Was ich tun möchte, ist, wenn PlacementTarget nicht in XAML festgelegt ist, dann setzt (das Steuerelement) es auf das Fenster, in dem sich das Steuerelement befindet der Benutzer dev, um PlacementTarget auf null zu setzen, und das Steuerelement setzt es nicht automatisch auf das Fenster).

Ich habe ein Feld namens placementTargetIsSet, das ich im Change-Ereignishandler auf true gesetzt habe

public readonly static DependencyProperty PlacementTargetProperty =
    DependencyProperty.Register(
        "PlacementTarget", typeof(UIElement), typeof(MyControl),
        new PropertyMetadata(new PropertyChangedCallback(PlacementTargetChanged)));

static void PlacementTargetChanged(
    DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
    MyControl ctrl = (sender as MyControl);
    ctrl.placementTargetIsSet = true;
}

public UIElement PlacementTarget
{
    get { return (UIElement)GetValue(PlacementTargetProperty); }
    set { SetValue(PlacementTargetProperty, value); }
}

Ich stelle jedoch fest, dass das geänderte Ereignis NACH OnApplyTemplate und dem Loaded-Ereignis auftritt. Wenn OnApplyTemplate oder Loaded ausgeführt wird, ist placementTargetIsSet == false, unabhängig davon, ob PlacementTarget festgelegt wurde oder nicht (in XAML).

Wann kann ich also davon ausgehen, dass PlacementTarget nicht festgelegt wurde?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage