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