Encontrar un elemento WPF dentro de DataTemplate en el código subyacente

Tengo una plantilla de datos

                     

Tengo un botón en el formulario. Necesito cambiar la escala (scaleTransform) del rectángulo de la plantilla de datos. ¿Cómo se supone que debo acceder al elemento ‘rectangleBarChart’ en el evento Button_Click del botón mencionado anteriormente?

Uso mucho esta función en mis progtwigs WPF para encontrar elementos secundarios:

 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; } } } 

Uso:

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

No lo hagas Si necesita cambiar algo en un DataTemplate , una las propiedades respectivas y modifique los datos subyacentes. También recomendaría vincular Button.Command a ICommand en su data / view-model (ver MVVM) en lugar de usar eventos, entonces ya está en el contexto correcto y la vista no necesita hacer nada.