DataGridViewComboBoxColumn Source De Données?

Je vais essayer d'obtenir quelque chose de mis en place dans un DataGridView. Il semble que ce devrait être assez simple, mais je vais avoir des ennuis. Je veux afficher trois colonnes:

  • CodeID
  • Nom de code
  • ComboBox avec DisplayMember de TypeName, ValueMember de TypeID

Je veux être en mesure de choisir parmi toutes les valeurs possibles de TypeName. Voici mon dilemme:

Si je charge tout cela dans un DataTable et définir la DataGridView comme le DataSource, je peux afficher l'existant TypeName pour cet enregistrement, mais la zone de liste déroulante inclut pas toutes les autres valeurs. Si j'ai mis le DataSource pour la DataGridViewComboBoxColumn à un autre DataTable qui inclut tous les possibles TypeNames, la valeur n'est pas affichée.

DataGridView est vraiment gênant de travailler avec une solution ou une alternative viable serait appréciée.

Edit: il semble que le problème est causé par mon désir d'avoir un élément distinct pour DisplayMember et ValueMember. Les travaux suivants, si je ne vous inquiétez pas sur la définition de la ID comme le ValueMember:

var typeColumn = new DataGridViewComboBoxColumn
{
    DataSource = typeList,
    DisplayMember = "Type",
    ValueMember = "Type",
    DataPropertyName = "Type"
}

Si je ne les suivants, le droit, les types sont sélectionnés, mais je ne peux pas changer la sélection dans la liste déroulante:

var typeColumn = new DataGridViewComboBoxColumn
{
    DataSource = typeList,
    DisplayMember = "Type",
    ValueMember = "TypeID",
    DataPropertyName = "TypeID"
}

Si j'utilise la suite je reçois un FormatException erreur comme elle essaie de se renseigner:

var typeColumn = new DataGridViewComboBoxColumn
{
    DataSource = typeList,
    DisplayMember = "Type",
    ValueMember = "TypeID",
    DataPropertyName = "Type"
}

modifier: typeList est un simple DataTable peuplée par ce qui suit:

SELECT DISTINCT IT.InsuranceTypeID, IT.[Type]
FROM InsuranceType IT
WHERE IT.ClientID = @ClientID
ORDER BY [Type]
Êtes-vous le réglage de la DataPropertyName sur le DGVCBC? Aussi, épique icône de profil. social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/...
Yep...voir mon edit.
Vous pouvez poster la façon dont vous le programme d'installation typeList et la structure de l'ajout à la liste? Les types de DataPropertyName et ValueMember doit être le même, ce qui est probablement pourquoi vous obtenez une exception dans le dernier exemple.
bien sûr, voir mon edit.

OriginalL'auteur John Straka | 2011-10-05