0

所以我有一些代码:

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文档清楚地显示了一种采用一个参数的方法:

公共对象查找名称(字符串名称)

参数名称类型:System.String

请求元素的名称。

返回值类型:System.Object

请求的元素。如果没有找到匹配的元素,这可以为 null。

那么为什么我的编译器会引发这个错误呢?

4

2 回答 2

2

GridViewColumnHeader.Template是 a ControlTemplate,它继承自FrameworkTemplate,而不是FrameworkElement

来自MSDN

public Object FindName(
    string name,
    FrameworkElement templatedParent
)
于 2014-12-10T11:01:24.207 回答
0

模板的类型为ControlTemplate,它继承了FrameworkTemplate。后者采用两个参数,而不是一个。

于 2014-12-10T11:02:41.293 回答