2

我有:

   <ListView.View GridViewColumnHeader.Click="ColumnHeaderClick">
      <GridView>
          <GridViewColumn x:Name="Col" Header="Item">   



   private void ColumnHeaderClick(object sender, RoutedEventArgs e)
     {
        GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader;

     }

现在,如何在方法中获取 GridViewColumn 的 x:Name 值?我不能在 xaml 中为列添加“名称”属性,它在运行时就像空字符串。虽然我能够获取标题,但仍然需要获取 x:Name 值。

4

2 回答 2

3

当您x:Name在不是 aFrameworkElement或的元素上使用语法时FrameworkContentElement,它会使用 a 注册该元素NameScope。不幸的是,您无法检索元素的名称,查找只能反其道而行之。

如果您需要传递有关 DataGridColumn 的其他信息,自定义附加属性将是一种简单的方法。

有关x:Name 的更多信息可以在 MSDN 上找到。此外,NameScope 文档描述了它的行为

于 2010-03-26T21:26:47.150 回答
0

您可以利用反射来获取价值:

GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader;
String xName = (String)headerClicked.getType().GetProperty("Name").GetValue(headerClicked, null);
于 2014-02-27T01:17:50.607 回答