Нет перегрузки для метода FrameworkElement.FindName принимает 1 аргумент

Итак, у меня есть код:

var columnHeader = (e.OriginalSource as GridViewColumnHeader);   
var temp = columnHeader.Template.FindName("Up");

Когда я щелкаю свой GridViewColumnHeader, я запускаю этот код. Но линия columnHeader.Template.FindName("Up") поднимает ошибку:No overload for method 'FindName' takes 1 arguments

Но что отличает это от любого другого вопроса, так это документация Microsoft для FrameworkElement.FindName четко показывает метод, который принимает один аргумент:

публичный объект FindName (имя строки)

Имя параметра Тип: System.String

Имя запрошенного элемента.

Возвращаемое значение Тип: System.Object

Запрашиваемый элемент. Это может быть ноль, если не найдено ни одного соответствующего элемента.

Так почему мой компилятор вызывает эту ошибку?

2 ответа

Решение

GridViewColumnHeader.Template это ControlTemplate, который наследует от FrameworkTemplate не FrameworkElement:

Из MSDN:

public Object FindName(
    string name,
    FrameworkElement templatedParent
)

Шаблон имеет тип ControlTemplate, который наследует FrameworkTemplate. Последний принимает два параметра, а не один.

Другие вопросы по тегам