FindName se rompe para mí :(WPF - FindName devuelve NULL cuando no debería
Si usted es un experto en este tipo de cosas me gustaría un poco de ayuda
El objeto Busco está allí.. tengo pruebas
Aquí está el panorama:.
ToggleButton button = (ToggleButton)sender;
Popup popup = (Popup)button.FindName("popSelectIteration");
popup
es nulo, pero no siempre sólo a veces pero incluso cuando se establece en nulo el niño soy looki.. ng para está allí.
Puse un punto de ruptura cuando era nulo y capté estas dos capturas de pantalla.
El es donde FindName vuelve nulo para "popSelectIteration":
alt text http://img175.imageshack.us/img175/2055/popupisnull.png
Pero si usted cava en el reloj, se ve que el niño está ahí:
alt text http://img708.imageshack.us/img708/8757/watchwithpopupnull.png
Entonces, ¿qué me estoy perdiendo? ¿Por qué FindName no lo encuentra? Como puede ver en la captura de pantalla, este no es un problema de temporización (el reloj FindName es nulo, pero la ruta directa es correcta).
¿Hay una manera mejor de encontrar un control?
Nota al margen: Si usted intersted en el XAML para el botón de activación en cuestión se puede encontrar en esta pregunta: WPF - FrameworkElement - Enumerate all decendents?.
actualización: Hice algo de investigación para ver por qué esto falla algunas veces y otras veces funciona. Tengo una animación que llama a NameScope.SetNameScope((DependencyObject)form, new NameScope());
(código de método completo here). Justo después de esa llamada, FindName comienza a fallar.
Realmente no entiendo esa llamada. Creo que copié y pegué el código. De todos modos, lo comenté. Pero me encantaría saber por qué esto está fallando.
Funcionó para mí. Estaba teniendo este problema con Template.FindName() – Trap
Esto funcionó para mí, era un problema más para los controles que estaban ocultos inicialmente o en una pestaña que no era visible inicialmente. – Dave
Estaba teniendo un problema con GetTemplateChild ("PART_EditableTextBox") con un ComboBox. Llamar a ApplyTemplate() de antemano resolvió el problema. ¡Gracias! –