我想搜索数据网格中的文本,如下所示的代码会产生错误
For i As Integer = 0 To _dt.Items.Count - 1
Dim row As DataGridRow = DirectCast(_dt.ItemContainerGenerator.ContainerFromIndex(i), DataGridRow)
For j As Integer = 0 To _dt.Columns.Count - 1
If row IsNot Nothing Then
Dim cellContent As TextBlock = TryCast(_dt.Columns(j).GetCellContent(row), TextBlock)
If cellContent IsNot Nothing AndAlso cellContent.Text.Equals(txtfind.Text) Then
_dt.ScrollIntoView(row, _dt.Columns(j))
Dim presenter As DataGridCellsPresenter = GetVisualChild(Of DataGridCellsPresenter(row))
Dim cell As DataGridCell = DirectCast(presenter.ItemContainerGenerator.ContainerFromIndex(j), DataGridCell)
_dt.SelectedItem = cell
cell.IsSelected = True
row.MoveFocus(New TraversalRequest(FocusNavigationDirection.[Next]))
Exit For
End If
End If
Next
Next
错误是针对行:数组边界不能出现在类型说明符中。
声明:Dim presenter As DataGridCellsPresenter = GetVisualChild(Of DataGridCellsPresenter(row))
帮助表示感谢 abhimoh
答案 0 :(得分:0)
变化:
Dim presenter As DataGridCellsPresenter = GetVisualChild(Of DataGridCellsPresenter(row))
'you have created an array with row number of values.
为:
Dim presenter As DataGridCellsPresenter = GetVisualChild(Of DataGridCellsPresenter)(row)