Suppongo che intendessi DataGridView, che è per Windows Forms, mentre GridView è per ASP.NET anche se hai taggato la tua domanda come tale.
Come si vincolano i dati a DataGridViewComboBoxColumn? È necessario impostare le proprietà DisplayMember e ValueMember su DataGridViewComboBoxColumn mentre si imposta DataSource. Il link MSDN a DisplayMember mostra un esempio, ma non mostra esattamente cosa stai richiedendo poiché imposta entrambe le proprietà sulla stessa cosa.
Il DisplayMember è il testo che si desidera venga visualizzato dall'utente e ValueMember sarebbe il valore sottostante nascosto ad esso associato.
Per il bene di un esempio, supponiamo di avere una classe scelta del progetto che rappresenta le selezioni e si presenta così:
public class Choice
{
public string Name { get; private set; }
public int Value { get; private set; }
public Choice(string name, int value)
{
Name = name;
Value = value;
}
private static readonly List<Choice> possibleChoices = new List<Choice>
{
{ new Choice("One", 1) },
{ new Choice("Two", 2) }
};
public static List<Choice> GetChoices()
{
return possibleChoices;
}
}
GetChoices() restituirà una lista contenente le vostre scelte. Idealmente, si avrebbe un tale metodo in un livello di servizio, o si potrebbe costruire la propria lista altrove se si desidera (nel codice della forma dietro). Per semplicità ho messo tutto insieme nella stessa classe.
Nel modulo si legherebbe l'elenco per il DataGridViewComboBoxColumn come segue:
// reference the combobox column
DataGridViewComboBoxColumn cboBoxColumn = (DataGridViewComboBoxColumn)dataGridView1.Columns[0];
cboBoxColumn.DataSource = Choice.GetChoices();
cboBoxColumn.DisplayMember = "Name"; // the Name property in Choice class
cboBoxColumn.ValueMember = "Value"; // ditto for the Value property
Si dovrebbe ora vedere "One" e "Two" nella casella combinata. Quando si ottiene il valore selezionato da esso, dovrebbe essere il valore sottostante 1 o 2.
Questa è l'idea alla base dell'utilizzo di DisplayMember/ValueMember. Questo dovrebbe farti andare e aiutarti ad adattare l'origine dati che stavi usando.
Questa è la risposta perfetta! Grazie Ahmad! Reinhard –
Come possiamo leggere il valore selezionato di una cella dropdown in datagrid? – Meysam
Non sapevo che era così semplice! Grazie – Jack