Невозможно привести объект типа 'System.Data.DataRowView' к типу xxx - PullRequest
0 голосов
/ 18 декабря 2011

Я хочу получить доступ к моему Player объекту в моем DataGridView. Вот как я перевожу свой список игроков на DataGridView:

PlayerList = new List<Player>(players);
//Populate Player list heere (...)          
DataTable dt = Tools.ToDataTable<Player>(PlayerList);
Grid.DataSource = dt;

И теперь я хочу получить доступ к своему Player объекту в выбранной строке в событии Двойного щелчка:

private void Grid_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    if (Grid.SelectedCells == null)
    {
        return;
    }
    int row = Grid.SelectedCells[0].RowIndex;

    //Here I get that exception from the title
    ((Player)(Grid.Rows[row].DataBoundItem)).KillPlayer();    
}

Ответы [ 2 ]

1 голос
/ 02 января 2012
private void DataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
   Player player = DataGridView1.Rows[e.RowIndex].DataBoundItem as Player;
}
1 голос
/ 18 декабря 2011

Просто мысль, вам действительно нужно преобразовать в DataTable?

Вы должны быть в состоянии связать PlayerList напрямую с Grid.DataSource через Grid.DataSource = PlayerList;

PlayerList = new List<Player>(players);
//Populate Player list heere (...)          
Grid.DataSource = PlayerList;

Ваш код ((Player)(Grid.Rows[row].DataBoundItem)).KillPlayer(); должен работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...