Как я могу получить доступ к x: Name из кода сзади? - PullRequest
2 голосов
/ 18 ноября 2009

У меня есть сетка данных, в которой я использую DataGridTemplateColumn и DataGridTextColumn. Я хочу получить доступ к этим столбцам во время выполнения, поэтому я назначил им свойство x: Name. Но я не получил это значение в коде, поэтому я искал DataGrid, а затем читал объекты, просматривая DataGrid.Columns. Как я могу прочитать свойство x: Name из этого объекта в C #?

Мне это нужно для выполнения определенных операций с определенными столбцами во время выполнения.

Ответы [ 2 ]

1 голос
/ 20 марта 2010

Другой альтернативой является определение присоединенного свойства:

1) Извлечь новый класс из DataGrid с прикрепленным свойством

Public Class FilteringDataGrid
   Inherits DataGrid


   Public Shared Function GetFilterProp(ByVal element As DependencyObject) As String
      If element Is Nothing Then
         Throw New ArgumentNullException("element")
      End If

      Return CStr(element.GetValue(FilterPropProperty))
   End Function

   Public Shared Sub SetFilterProp(ByVal element As DependencyObject, ByVal value As String)
      If element Is Nothing Then
         Throw New ArgumentNullException("element")
      End If

      element.SetValue(FilterPropProperty, value)
   End Sub

   Public Shared ReadOnly FilterPropProperty As  _
                          DependencyProperty = DependencyProperty.RegisterAttached("FilterProp", _
                          GetType(String), GetType(FilteringDataGrid), _
                          New FrameworkPropertyMetadata(Nothing))
End Class

2) Установите опору в Xaml

<dg:DataGridTextColumn local:FilteringDataGrid.FilterProp="ItemName" x:Name="dbcItemName" Header="Item" >

3) Считайте значение

1 голос
/ 19 ноября 2009

Столбец таблицы данных не добавляется в визуальное дерево. (возможно, из-за этого вы не можете получить к нему доступ в коде) - см. vinces blog на визуальном макете.

Вы можете посмотреть на свойство заголовка, или вы можете получить и добавить свое собственное свойство для уникальной идентификации столбца. Это то, что я делаю, я обнаружил, что колонки немного ванильные и вывели довольно много для разных целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...