Элемент доступа внутри Silverlight DataTemplate

Я не смог найти чистого решения для следующей проблемы, хотя по SO уже есть несколько связанных вопросов.

Если У меня есть шаблон данных, который используется несколько раз, например, TreeViewItem.HeaderTemplate, как я могу что-то изменить шаблон только для некоторых из TreeViewItems.

Например, скажем, мой TVI HeaderTemplate имеет текстовый блок и в зависимости от в строке я хочу сделать шрифт жирным шрифтом.

Я хочу сделать что-то вроде этого:

((TextBlock)myTreeView.Items.ElementAt(0).FindName("myTextBlock")).FontWeight = FontWeights.Bold;

У кого-нибудь есть решение для этого? -> Спасибо, Эван

Редактировать: Есть ли способ написать универсальную функцию для получения элемента управления на основе его имени, даже если он находится в шаблоне данных?

LayoutRoot.FindName ("myTextBlock"); сработало бы, если бы myTextBlock не было в табличке с данными. Как я могу написать функцию findElementInDataTemplate (string elementName, string parentName) ? 12267 Причина, по которой Эван отвечает не тем, что я ищу, заключается в том, что я разрабатываю элемент управления. Я хочу, чтобы разработчик приложения, использующий мой элемент управления, мог изменять любой элемент элемента управления. Если я использую решение Эвана, это потребует от разработчика приложения доступа ко всем шаблонам в элементе управления. Возможно, но не идеально. Спасибо!

5
задан NickHalden 10 August 2010 в 17:05
поделиться