2009-10-02 3 views
0

В основном у меня есть DataTemplate, который содержит Border, StackPanel и прочее, а позже я использую этот DataTemplate в качестве ContentTemplate во многих ContentControl (s).С WPF, как получить элементы управления, содержащиеся в DataTemplate?

Эти ContentControl (ы) названы, но из кода C# мне не удается найти способ вернуть мою Border, StackPanel и прочее из них.

Любые идеи?

ответ

1

Вы должны быть в состоянии сделать Somthing так:

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

И вы можете найти больше об этом здесь: How to: Find DataTemplate-Generated Elements

+0

Это помогло мне, но Я должен был изменить свой ContentControl на ContentPresenter, иначе он выдал бы ошибку. Подробное описание проблемы ContentControl приведено здесь: http://joshsmithonwpf.wordpress.com/2007/06/28/how-to-use-findname-with-a-contentcontrol/ – TigrouMeow

Смежные вопросы