2009-10-02 7 views
0

Fondamentalement, j'ai un DataTemplate qui contient Border, StackPanel et d'autres choses, et plus tard j'utilise ce DataTemplate comme ContentTemplate dans de nombreux ContentControl (s).Avec WPF, comment récupérer les contrôles contenus dans un DataTemplate?

Ces ContentControl (s) sont nommés, mais à partir du code C# je n'arrive pas à trouver un moyen de récupérer ma Border, StackPanel et d'autres choses.

Des idées?

Répondre

1

Vous devriez être en mesure de faire somthing comme ceci:

// Finding textBlock from the DataTemplate that is set on that ContentPresenter 
DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; 
TextBlock myTextBlock = (TextBlock)myDataTemplate.FindName("textBlock", myContentPresenter); 

Et vous pouvez trouver plus d'informations ici: How to: Find DataTemplate-Generated Elements

+0

Cela m'a aidé, mais J'ai dû changer mon ContentControl à un ContentPresenter sinon il a jeté une erreur. Il y a des explications détaillées sur le problème du ContentControl ici: http://joshsmithonwpf.wordpress.com/2007/06/28/how-to-use-findname-with-a-contentcontrol/ – TigrouMeow

Questions connexes