Avatar billede barn Nybegynder
27. maj 2010 - 23:15 Der er 1 kommentar

hvordan tilgår jeg combobox i datagridview?

Jeg har en liste af objekter af typen film som hver især indeholder en liste af andre objekter af typen MovieFile.

film listen binder jeg til et datagrid og MovieFile binder jeg til en combobox i datagrid'et


foreach (var film in ListOfMovies)
{
DataGridViewRow MyRow = new DataGridViewRow();
DataGridViewComboBoxCell comboCell = new DataGridViewComboBoxCell();
comboCell.DataSource = film.MFLpriv;
comboCell.DisplayMember = "NewFileName";
comboCell.ValueMember = "Id";
MyRow.Cells.Add(comboCell);
dataGridView2.Rows.Add(MyRow);
}

og det virker fint, men hvordan tilgår jeg så comboboxen igen?

Jeg forsøger at gøre følgende:

foreach (DataGridViewRow dgr in dataGridView2.Rows)
{
  if(Convert.ToBoolean(dgr.Cells[3].Value) == true)
  {
  MovieFile noet = (MovieFile)dgr.Cells[2].Value;
  }
}

men får fejlen:
Et objekt af typen 'System.Int32' kan ikke konverteres til typen 'MovieFile'

ændrer jeg det til:

Jeg har en liste af objekter; film som hver især indeholder en liste af andre objekter MovieFile.

film listen binder jeg til et datagrid og MovieFile binder jeg til en combobox i datagrid'et


foreach (var film in ListOfMovies)
{
DataGridViewRow MyRow = new DataGridViewRow();
DataGridViewComboBoxCell comboCell = new DataGridViewComboBoxCell();
comboCell.DataSource = film.MFLpriv;
comboCell.DisplayMember = "NewFileName";
comboCell.ValueMember = "Id";
DataGridViewCheckBoxCell processbox = new DataGridViewCheckBoxCell();
MyRow.Cells.Add(comboCell);
MyRow.Cells.Add(processbox);
dataGridView2.Rows.Add(MyRow);
}

og det virker fint, men hvordan tilgår jeg så comboboxen igen?

Jeg forsøger at gøre følgende:

foreach (DataGridViewRow dgr in dataGridView2.Rows)
{

  if(Convert.ToBoolean(dgr.Cells[3].Value) == true)
  {
  MovieFile noet =  dgr.Cells[2].Value as MovieFile;
  }
}

Hvis der nu havde været tale om en helt almindelig combobox, så kan jeg gøre følgende med sucess:

MovieFile M = (MovieFile)comboBox1.SelectedItem;

men fordi det er en comboboxcell, så har jeg ikke "selectedItem".

Jeg er efterhånden totalt tom for ideer.
Avatar billede barn Nybegynder
27. maj 2010 - 23:20 #1
HOV!! Der gik fisk i noget copy/paste.

Prøver igen:

Jeg har en liste af objekter af typen film som hver især indeholder en liste af andre objekter af typen MovieFile.

film listen binder jeg til et datagrid og MovieFile binder jeg til en combobox i datagrid'et


foreach (var film in ListOfMovies)
{
DataGridViewRow MyRow = new DataGridViewRow();
DataGridViewComboBoxCell comboCell = new DataGridViewComboBoxCell();
comboCell.DataSource = film.MFLpriv;
comboCell.DisplayMember = "NewFileName";
comboCell.ValueMember = "Id";
MyRow.Cells.Add(comboCell);
dataGridView2.Rows.Add(MyRow);
}

og det virker fint, men hvordan tilgår jeg så comboboxen igen?

Jeg forsøger at gøre følgende:

foreach (DataGridViewRow dgr in dataGridView2.Rows)
{
  if(Convert.ToBoolean(dgr.Cells[3].Value) == true)
  {
  MovieFile noet = (MovieFile)dgr.Cells[2].Value;
  }
}

men får fejlen:
Et objekt af typen 'System.Int32' kan ikke konverteres til typen 'MovieFile'


Hvis der nu havde været tale om en helt almindelig combobox, så kan jeg gøre følgende med sucess:

MovieFile M = (MovieFile)comboBox1.SelectedItem;

men fordi det er en comboboxcell, så har jeg ikke "selectedItem".

Jeg er efterhånden totalt tom for ideer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester