2010-03-26 77 views
2

我:如何獲得X:名稱值運行

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

    } 

現在,如何獲得X:在方法GridViewColumn的名稱值?我無法在xaml中爲列添加'Name'屬性,並且它在運行時像空字符串一樣。雖然我能夠獲得標題,但仍需要獲取x:Name值。

回答

3

當您在非FrameworkElementFrameworkContentElement的元素上使用x:Name語法時,它將該元素註冊爲NameScope。不幸的是,您無法檢索元素的名稱,查找只能以其他方式進行。

如果您需要傳遞有關DataGridColumn的其他信息,則自定義附加屬性將是一個簡單的方法。

有關x:Name can be found on MSDN的更多信息:另外,NameScope documentation describes its behavior

0

您可以利用反射搶與價值:

GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader; 
String xName = (String)headerClicked.getType().GetProperty("Name").GetValue(headerClicked, null);