FindName benim için kırık gerektiği halde :(böyle şeylere bir uzman isenizWPF - bu
biraz yardıma isterdim FindName boş sonucunu döndürür
aradığım nesne yoktur.. Ben kanıtı İşte
senaryodur.ToggleButton button = (ToggleButton)sender;
Popup popup = (Popup)button.FindName("popSelectIteration");
popup
boş ama her zaman sadece bazen ama ben looki duyuyorum çocuğu null ayarlandığında bile.. ng var.
Null olduğunda bir ara verdim ve bu iki ekran görüntüsünü yakaladım.
alt text http://img175.imageshack.us/img175/2055/popupisnull.png
Ama saatin içine kazmak eğer, gördüğünüz çocuk olduğunu:
alt text http://img708.imageshack.us/img708/8757/watchwithpopupnull.png
FindName "popSelectIteration" için boş dönen nerede
olduğunu Yani neyi özlüyorum? FindName neden bulamıyor? Ekran görüntüsünden gördüğünüz gibi bu bir zamanlama sorunu değildir (FindName saati boştur, ancak doğrudan yol iyidir).
Bir denetim bulmanın daha iyi bir yolu var mı?
Yan Not: Söz konusu açma/kapama düğmesi için XAML'de iç içe geçiyorsanız, bu soruda bulunabilir: WPF - FrameworkElement - Enumerate all decendents?.
Güncelleme: Ben bu işe yarıyor bazı zamanları ve diğer kez başarısız nedenini görmek için kazma bazı yaptı. NameScope.SetNameScope((DependencyObject)form, new NameScope());
(Tam yöntem kodu here) çağıran bir animasyon var. Bunun hemen ardından FindName başarısız olmaya başlar.
Bu çağrıyı gerçekten anlamıyorum. Sanırım kodu kopyalayıp yapıştırdım. Her neyse, yorumladım. Ama bunun neden başarısız olduğunu bilmek isterim.
Benim için çalıştı. Template.FindName() – Trap
ile bu sorunu yaşıyordu Bu benim için çalıştı, başlangıçta veya başlangıçta görünmeyen bir sekmede gizlenmiş olan denetimler için daha fazla bir sorun oldu. – Dave
Bir ComboBox ile GetTemplateChild ("PART_EditableTextBox") ile bir sorun yaşıyordum. Sorunu çözmeden önce ApplyTemplate() öğesini çağırmak. Teşekkürler! –