Я не смог найти чистого решения для следующей проблемы, хотя по 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 Причина, по которой Эван отвечает не тем, что я ищу, заключается в том, что я разрабатываю элемент управления. Я хочу, чтобы разработчик приложения, использующий мой элемент управления, мог изменять любой элемент элемента управления. Если я использую решение Эвана, это потребует от разработчика приложения доступа ко всем шаблонам в элементе управления. Возможно, но не идеально. Спасибо!