Найти элемент WPF внутри DataTemplate в коде
У меня есть шаблон данных
У меня есть кнопка в форме. Мне нужно изменить масштаб (scaleTransform) прямоугольника из dataTemplate. Как я могу получить доступ к элементу ‘rectangleBarChart’ в событии Button_Click вышеупомянутой кнопки?
- Как я могу сортировать ListBox, используя только XAML и без кода?
- Можете ли вы определить несколько TargetTypes для одного стиля XAML?
- В .NET 4.0 привязка OneWayToSource
- Как вы передаете параметры из xaml?
- Мои изображения размыты! Почему WPF SnapsToDevicePixels не работает?
- WinRT и региональные настройки. Правильный способ форматирования дат и чисел на основе региональных настроек пользователя?
- Являются ли "{Binding Path =.}" И "{Binding}" действительно равными
- Как установить ViewModel в окне в XAML с использованием свойства DataContext?
- Загрузка XAML во время выполнения?
- URI «clr-namespace» относится к пространству имен, которое не входит в сборку
- Изменение цвета ячейки DataGrid на основе значений
- Как применить правило пользовательской сортировки к WPF DataGrid?
- Какие подходы доступны для фиктивных данных времени разработки в WPF?
Я часто использую эту функцию в своих программах 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) вместо использования событий, тогда вы уже в нужном контексте, и в представлении ничего не нужно делать.