codice:
foreach(TableRow tr in MyTable.Rows)
{
 CheckBox c = (CheckBox)tr.Cells[2].Controls[1];
 if(c.Checked==true) 
  {
   string id = tr.Cells[0].Text;
   arrIDTrue.Add(id);
  }
}
Dovrebbe andare così nel caso in cui usi una tabella.
Se ti stai domandando il perché di così poche variazioni di codice, la risposta è:
Il DataGridItem eredità molte sue caratteristiche dal TableRow dell'oggetto Table, quindi la sua struttura è molto simile

P.S.
Il codice si riferisce all'esempio che ho fatto io precedentemente!