views:

58

answers:

1

I got:

   <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;

     }

Now, how to get the x:Name value of GridViewColumn in the method? I can't put 'Name' property for the column in xaml, and it comes like empty string in runtime. Although I am able to get the header, still need to get x:Name value.

A: 

When you use the x:Name syntax on an element that isn't a FrameworkElement or FrameworkContentElement, it registers the element with a NameScope. Unfortunately, you can't retrieve the name for an element, the lookup only works the other way around.

If you need to pass additional information about the DataGridColumn, a custom attached property would be an easy way of doing it.

More information about x:Name can be found on MSDN. Also, the NameScope documentation describes its behavior.

Abe Heidebrecht