使用 DataGrid 的 WPF 应用程序。用户双击一个单元格,我需要获取该行中另一个单元格的值。
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")
这让我“Option 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