WPF - FindName Gibt null zurück, wenn dies nicht der Fall sein sollte

FindName ist kaputt für mich :(

Wenn Sie ein Experte in solchen Dingen sind, würde ich etwas Hilfe lieben.

Das Objekt, das ich suche, ist da. Ich habe Beweise.

Hier ist das Szenario:

ToggleButton button = (ToggleButton)sender;
Popup popup = (Popup)button.FindName("popSelectIteration");

popup ist null aber nicht immer. Nur manchmal. Aber selbst wenn es auf null gesetzt ist, ist das gesuchte Kind da.

Ich habe einen Haltepunkt eingefügt, als es null war, und diese beiden Screenshots aufgenommen.

Hier gibt FindName null für "popSelectIteration" zurück:

alt text http://img175.imageshack.us/img175/2055/popupisnull.png

Aber wenn Sie in die Uhr graben, sehen Sie, dass das Kind da ist:

Alternativtext http://img708.imageshack.us/img708/8757/watchwithpopupnull.png

Also, was fehle ich? Warum findet FindName es nicht? Wie Sie dem Screenshot entnehmen können, handelt es sich nicht um ein Zeitproblem (die FindName-Überwachung ist null, aber der direkte Pfad ist in Ordnung).

Gibt es einen besseren Weg, um ein Steuerelement zu finden?

Randnotiz: Wenn Sie an der XAML für die betreffende Umschaltfläche interessiert sind, finden Sie diese in der folgenden Frage:WPF - FrameworkElement - Alle Nachkommen auflisten?.

Aktualisieren: Ich habe ein bisschen gegraben, um zu sehen, warum dies manchmal fehlschlägt und manchmal funktioniert es. Ich habe eine Animation, die anruftNameScope.SetNameScope((DependencyObject)form, new NameScope()); (Vollständiger MethodencodeHier). Gleich nach diesem Aufruf schlägt der FindName fehl.

Ich verstehe diesen Anruf nicht wirklich. Ich glaube, ich habe den Code kopiert und eingefügt. Wie auch immer, ich habe es auskommentiert. Aber ich würde gerne wissen, warum dies fehlschlägt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage