Предположим, у меня есть XAML, представляющий сетку с некоторыми дочерними элементами, каждый дочерний элемент - это отдельный элемент управления с x: Name. Как мне "получить" эти элементы управления из кода по имени?
Silverlight 3.0: как получить дочерние элементы сетки по x: Name?
Ответы (2)
Если код, который вы пишете, находится в файле кода программной части для файла xaml, Visual Studio должна автоматически сгенерировать переменные-члены, содержащие ссылки на любые именованные элементы в файле xaml. Итак, если у вас есть кнопка с x: Name = "myButton", вы можете получить доступ к этой кнопке через this.myButton.
Если вы хотите сослаться на именованный элемент откуда-то, кроме файла кода программной части, вы можете вызвать FindName в элементе для именованного элемента, например:
Button myButton = myGrid.FindName("myButton") as Button;
где myGrid - это ссылка на рассматриваемую сетку.
Каждый элемент управления с x: Name имеет поле, созданное для него в частичном классе, который создается для XAML. Это поле имеет внутреннюю доступность. Следовательно, из кода в cs «кода программной части» (почему я ненавижу этот термин?) Вы можете просто использовать имя элемента управления непосредственно в коде для доступа к нему.