2013-05-15 59 views
1

我要搜索的數據網格中的文本,這樣寫下方的代碼給出錯誤Datagrid的文本搜索

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

這裏有一個C#示例,應該是很容易轉換到VB HTTP: //stackoverflow.com/questions/15467553/proper-datagrid-search-from-textbox-in-wpf-using-mvvm/15469031#15469031 –

+1

是的我wa nt關閉此線程 –

回答

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)