Найти элемент WPF внутри DataTemplate в коде

У меня есть шаблон данных

                     

У меня есть кнопка в форме. Мне нужно изменить масштаб (scaleTransform) прямоугольника из dataTemplate. Как я могу получить доступ к элементу ‘rectangleBarChart’ в событии Button_Click вышеупомянутой кнопки?

Я часто использую эту функцию в своих программах WPF для поиска дочерних элементов:

 public IEnumerable FindVisualChildren(DependencyObject depObj) where T : DependencyObject { if (depObj != null) { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) { DependencyObject child = VisualTreeHelper.GetChild(depObj, i); if (child != null && child is T) yield return (T)child; foreach (T childOfChild in FindVisualChildren(child)) yield return childOfChild; } } } 

Применение:

 foreach (var rectangle in FindVisualChildren(this)) { if (rectangle.Name == "rectangleBarChart") { /* Your code here */ } } 

Не делай этого. Если вам нужно что-то изменить в DataTemplate тогда привяжите соответствующие свойства и измените базовые данные. Кроме того, я бы рекомендовал Button.Command к ICommand к вашей модели данных / представления (см. MVVM) вместо использования событий, тогда вы уже в нужном контексте, и в представлении ничего не нужно делать.

  • KeyBinding в UserControl не работает, когда TextBox имеет фокус
  • Применение инсульта к текстовому блоку в WPF
  • Как скрыть кнопку закрытия в окне WPF?
  • Почему избежать кода в шаблоне MVVM WPF?
  • Доступ к ScrollViewer из ListBox из C #
  • Преобразование управления WPF (XAML) в документ XPS
  • Как сделать элементы WPF ListView повторяющимися по горизонтали, например, горизонтальной полосой прокрутки?
  • Как получить размер текущего экрана в WPF?
  • Изображение кнопки мыши WPF
  • Связывание Datagrid в WPF
  • WPF DataGrid - кнопка в столбце, получающая строку, из которой она появилась в обработчике событий Click
  • Давайте будем гением компьютера.