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