2017-01-18 12 views
0

В моем примере я получил:Как найти DataGridViewRow в DataGridView, который «привязан» к DataRow в DataTable?

DataTable dt = SomeMethodThatFillsDataTable(); 
DataGridView dgv = new DataGridView; 
dgv.DataSource = dt; 

теперь я хотел бы, чтобы «выбрать» некоторые DataRows из DataTable и выделить его в DataGridView

DataRow[] foundRows = dt.Select("someColumn = someTerm"); 

foreach (DataRow row in foundRows)  
{  
    DataGridViewRow dgvRow = // here i would like to get acces to DataGridViewRow "attached" to row  
    dgvRow.DefaultCellStyle.BackColor = Color.Red;  
} 

Любая навязчивая, как это сделать? Возможно ли это так или иначе?

+0

вы можете сказать мне это DataTable является diffrent от источника од сетки, почему я спрашиваю, что becuase если это же, чем вы не должны делать согласование. Вы можете использовать событие формирования ячейки и получить это значение –

+0

Этот DataTable является источником сетки. –

+0

Этот DataTable является источником сетки. Я не хочу, чтобы меняла форму. Я не уверен, но формирование ячейки форматирует каждую ячейку, которая выполняет условия формирования. Я хочу получить конкретный DataGridViewRow, который «связан» с моим конкретным DataRow в DataTable. Предположим, что я хотел бы использовать функцию поиска для своего приложения. Кнопка щелчка пользователя в первый раз - подсвечивается строка с искомым значением, пользователь нажимает кнопку в следующий раз - следующая строка подсвечивается и т. Д. –

ответ

0

Вы можете использовать этот способ

foreach(DataGridViewRow row in dgv.Rows) 
{ 
    if(row.Cells[someColumn].Value.ToString().Equals(someTerm)) 
    { 
     dgvRow.DefaultCellStyle.BackColor = Color.Red; 
    } 
} 
+0

Да, я знаю, что могу выполнять поиск по всем строкам DataGridView, однако я надеялся, что есть способ сделать он не перебирает все строки. Данные DataRowRow = ((DataRowView) dgv.Rows [x] .DataBoundItem) .Row; таким образом, я могу найти DataGridViewRow в DataTable, возможно, есть способ сделать это наоборот. –

+0

Вы можете использовать события dgv_CellFormatting или dgv_DataBindingComplete вместо цикла –

 Смежные вопросы

  • Нет связанных вопросов^_^