Приложение WPF, использующее DataGrid. Пользователь дважды щелкает ячейку, и мне нужно получить значение другой ячейки в этой строке.
Dim dep As DependencyObject = DirectCast(e.OriginalSource, DependencyObject)
Dim dgRow As DataGridRow = Nothing
While dep IsNot Nothing
If TypeOf dep Is DataGridRow Then
dgRow = DirectCast(dep, DataGridRow)
End If
dep = VisualTreeHelper.GetParent(dep)
End While
Итак, теперь у меня есть строка, я хочу получить значение из определенного столбца:
Dim xx As String = dgRow.Item("xx")
Это дает мне «Опция Strict On запрещает позднее связывание» без вариантов исправления. Он отлично работает с параметром Option Strict Off. Я пробовал все следующее, чтобы исправить это:
dgRow.Item("xx").ToString
DirectCast(dgRow.Item("xx"), String)
CType(dgRow.Item("xx"), String)
Однако красная волнистая линия остается под dgRow.Item("xx") во всех этих сценариях.
Цените любой вклад, включая альтернативные способы сделать это.
ОБНОВЛЕНИЕ
Вот код, который в итоге сработал. Я посмотрел на тип свойства Item, и это был DataRowView. Благодаря ответу Марка ниже.
dgRow = DirectCast(DirectCast(dep, DataGridRow).Item, DataRowView)
Это позволило мне сделать это без ошибки позднего связывания:
dgRow.Item("xx").ToString