Как получить х: имя значения времени выполнения - PullRequest
2 голосов
/ 26 марта 2010

Я получил:

   <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: Name для GridViewColumn в методе? Я не могу поместить свойство 'Name' для столбца в xaml, и оно появляется как пустая строка во время выполнения. Хотя я могу получить заголовок, все равно нужно получить значение x: Name.

Ответы [ 2 ]

3 голосов
/ 27 марта 2010

Когда вы используете синтаксис x:Name для элемента, который не является FrameworkElement или FrameworkContentElement, он регистрирует элемент с NameScope. К сожалению, вы не можете получить имя для элемента, поиск работает только наоборот.

Если вам необходимо передать дополнительную информацию о DataGridColumn, пользовательское присоединенное свойство будет простым способом сделать это.

Дополнительная информация о x: Имя можно найти в MSDN . Кроме того, документация NameScope описывает его поведение .

0 голосов
/ 27 февраля 2014

Вы можете использовать отражение, чтобы получить значение с:

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