Наиболее распространенным подходом к этому является «имя» элемента, который вы хотите найти с помощью x:Name="MyElementName"
, затем вы можете использовать метод FindName , чтобы найти элемент names.Если ваш DataTemplate
используется в ItemsControl
для рендеринга нескольких копий разметки XAML, очевидно, будет несколько элементов с таким же именем.По этой причине существует концепция, известная как именная область XAML , вам следует ознакомиться с ней, чтобы понять сферу предоставляемого вами имени.
Если вам требуется более общий метод поискадля элементов в визуальном дереве попробуйте Linq-to-VisualTree , вы можете использовать его для запроса пользовательского интерфейса, например:
var itemsFluent = this.Descendants<TextBox>()
.Where(i => i.Ancestors().FirstOrDefault() is Grid);
Приведенный выше запрос найдет все TextBoxs
у которых Grid
является прямым родителем.
Наконец, если вы можете избежать всего этого, используя привязку данных или всплывающие события, сделайте это!это намного проще.