Wiedząc, czy właściwość DependencyProperty nie została ustawiona w XAML

Mam kontrolę, która ujawnia DP o nazwie PlacementTarget (jest powiązany z podrzędnym Popup FWIW).

To, co chcę zrobić, to jeśli PlacementTarget nie jest ustawiony w XAML, wtedy (kontrolka) ustawi go w oknie, w którym znajduje się formant. Kiedy mówię „nie ustawione”, nie mam na myśli po prostu „jest zerowe” (pozwala użytkownik dev, aby ustawić PlacementTarget na null, a formant nie ustawi go automatycznie w oknie).

Mam pole o nazwie placementTargetIsSet, które ustawiam na true w procedurze obsługi zmian Change

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); }
}

Jednak odkrywam, że zmienione wydarzenie ma miejsce po PO OnApplyTemplate i zdarzeniu Loaded. tj. gdy zdarzają się OnApplyTemplate lub Loaded, placementTargetIsSet == false, niezależnie od tego, czy został ustawiony Cel umieszczenia, czy nie (w XAML).

Kiedy więc mogę bezpiecznie założyć, że cel umieszczenia nie został ustawiony?

questionAnswers(1)

yourAnswerToTheQuestion