Application WPF utilisant DataGrid. L'utilisateur double-clique sur une cellule et j'ai besoin d'obtenir la valeur d'une autre cellule de cette ligne.WPF DataGridRow.Item ("xx") - Option Strict On interdit la liaison tardive
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
Alors maintenant, j'ai la ligne, je veux obtenir la valeur d'une colonne spécifique:
Dim xx As String = dgRow.Item("xx")
Cela me obtient "Option Strict On n'autorise la liaison tardive" sans options de correction. Cela fonctionne très bien avec Option Strict Off. J'ai essayé tout ce qui suit pour corriger:
dgRow.Item("xx").ToString
DirectCast(dgRow.Item("xx"), String)
CType(dgRow.Item("xx"), String)
Cependant, la ligne rouge squiggly reste sous dgRow.Item (« xx ») dans tous ces scénarios.
Appréciez toute contribution, y compris d'autres façons d'y parvenir.
MISE À JOUR
Voici le code qui a finalement travaillé. J'ai regardé le type de la propriété Item et c'était DataRowView. Merci à la réponse de Mark ci-dessous.
dgRow = DirectCast(DirectCast(dep, DataGridRow).Item, DataRowView)
Cela m'a permis de le faire sans l'erreur liaison tardive:
dgRow.Item("xx").ToString
Merci! Cela m'a aidé à le réparer. J'ai modifié ma question pour inclure mon code final. – tolsen64