2012-01-01 5 views
0

У меня есть DataGridView и DataTable с моими «игроками».DataGridView и DataTable

 DataTable dt = Extensions.ToDataTable<Player>(PlayerList); 
     Grid.DataSource = dt; 

Я хочу получить доступ к объекту проигрывателя в событии doubleclick, когда пользователь щелкает любую ячейку в моей сетке. Как это сделать?

+0

'Grid.DataSource = PlayerList,' будет делать то же самое. –

+0

@HenkHolterman: Вы не знаете, какой тип это, или хотят ли они привязываться к копии. – SLaks

+0

@HenkHolterman Нет, он не будет делать то же самое в моей программе. – Hooch

ответ

3

Добавить обработчик для события CellContentDoubleClick в DataGridView, то доступ к DataBoundItem из ряда:

DataGridView1.CellContentDoubleClick += DataGridView1_CellContentDoubleClick; 

private void DataGridView1_CellContentDoubleClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e) 
{ 
    Player player = DataGridView1.Rows[e.RowIndex].DataBoundItem as Player; 
} 
+0

Я слепой или нет свойства DataBoundItem в DataRow? – Hooch

+0

Нет, нет, но есть в DataGridViewRow, что и должно возвращать коллекции строк. Однако я просто понял, что для C# была проблема перевода: 'DataGridView1.Rows (e.RowIndex)' должен быть 'DataGridView1.Rows [e.RowIndex]'. Я исправил ответ. –

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