Aby znaleźć kontrolki w wpf, trzeba użyć klasy VisualTreeHelper, ale ta klasa nie ma metody wyszukiwania kontrolek zgodnie z nazwą, więc przeszukałem sieć i wybrałem następną klasę, którą uważam za bardzo wygodną w użyciu.
Opublikuj to dla własnej informacji.
Jest bardzo prosty do użycia, na przykład znajdź pole tekstowe o nazwie "myTextBox" w kolumnie szablonu w datagridzie – możesz to napisać tak:
Uwaga: Podczas inicjalizacji strony, jeśli kod do znalezienia kontrolki zostanie umieszczony w zdarzeniu Załadowany, kontrolka nie zostanie znaleziona. Powinien być umieszczony w zdarzeniu LayoutUpdated, gdy xaml zostanie załadowany i wszystkie podkontrolery będą mogły zostać pobrane.
Jednak zdarzenie LayoutUpdated będzie się uruchamiać tak długo, jak strona jest aktualizowana, a jeśli chcemy osiągnąć efekt zdarzenia Loaded, możemy ustawić flagę, która kontroluje, że kod zostanie wykonany tylko raz podczas inicjalizacji, i nie wymyśliłem lepszego sposobu implementacji, który wygląda mniej więcej następująco:
|