Как определить DataGridViewRow из DataRow, с которым он связан - PullRequest
4 голосов
/ 26 августа 2011

Я хотел бы изменить цвет перед DataGridViewRow при возникновении события DataTable (в частности, DataColumnChangeEvent). Для этого мне нужно получить соответствующую DataGridViewRow строку, в которой произошло событие.

У меня есть следующее:

private void DataColumnChanged(object sender, DataColumnChangeEventArgs e)
     {
     DataColumn col = e.Column;
     DataRow row = e.Row;

     if (col != null && row != null)
        {
        if (col.ColumnName == "abc")
           {
           String str = col.ToString();

           if (str == "1")
              {
              DataGridViewRow dgvr = <somehow get row's associated DataGridViewRow> 
              ChangeRowForeColor(dgvr, "Purple");
              }
           }
        }

Следующие вопросы - обратное направление (получение DataRow от DataGridViewRow), поэтому я знаю, что его можно найти как минимум одним способом, но я не могу найти информацию об обратной задаче.

Как получить DataRow из строки в DataGridView

Как определить, какая DataRow связана с DataGridViewRow

Пример кода того, как определить DataGridViewRow из DataRow, будет принята с благодарностью.

1 Ответ

4 голосов
/ 26 августа 2011

Звоните dataView.Find по первичному ключу строки.

РЕДАКТИРОВАТЬ : Чтобы найти DataGridViewRow для DataRowView, позвоните grid.Rows[dataView.IndexOf(drv)).

...