MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Как в wpf получить доступ к объектам созданным в коде xaml"
Answer 1033061
Я не вижу, как для обработки нажатий кнопок нужно получать к ним доступ из кода. Механизм шаблонов точно так же умеет устанавливать и обработчики событий для того, что он генерирует:
<DataTemplate> <Button Width="20" Height="20" Click="Button_Click" /> </DataTemplate>
Но, если нужно получить доступ в коде к элементу, сгенерированному шаблоном, конечно, это можно сделать. Проще всего проходить по визуальному дереву; правда следует делать это аккуратно и не завязывать код на определенную его структуру, которая может зависеть от темы оформления. Например, вот так можно найти Button с определенным значением свойства Tag в визуальном дереве:
public static Button FindButton(Visual vis, string tag) { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(vis); i++) { Visual child = (Visual)VisualTreeHelper.GetChild(vis, i); Button button = child as Button; if (button != null) { if (tag == (string)button.Tag) return button; } Button res = FindButton(child,tag); if (res != null) return res; } return null; } Button button = FindButton(ListViewDictionary, "...");
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.