Некоторые элементы управления содержимым зависят от наличия других элементов управления в их ControlTemplate
. Обычно это должно быть задокументировано с использованием атрибута TemplatePart
.
Элемент управления Combobox
, например, зависит от наличия элементов управления TextBox
и Popup
в его шаблоне.
Это было бы задокументировано, поместив атрибут в класс следующим образом:
[TemplatePart(name="PART_EditableTextBox", type=typeof(TextBox))]
[TemplatePart(name="PART_Popup", type=typeof(Popup))]
public class Combobox : Selector
{
[...]
Соглашение о присвоении имен "PART_controlIdentifier".
Соответствующим элементам будут присвоены те же имена в шаблоне элемента управления, чтобы их можно было найти в методе OnApplyTemplate
.
Это позволяет элементу управления подключаться к событиям, устанавливать свойства и вызывать методы для элементов управления, содержащихся в шаблоне.
Этот атрибут предназначен для документирования, чтобы люди, разрабатывающие пользовательские шаблоны элементов управления (и такие инструменты, как Expression Blend), знали, что элемент управления зависит от существования другого.