Я предполагаю, что вы имели в виду DataGridView, который предназначен для Windows Forms, а GridView - для ASP.NET, хотя вы отметили свой вопрос как таковой.
Как вы привязываете данные к DataGridViewComboBoxColumn? Вам нужно будет установить свойства DisplayMember и ValueMember в DataGridViewComboBoxColumn, установив его DataSource. Ссылка MSDN на DisplayMember показывает пример, но он не совсем показывает, что вы запрашиваете, поскольку он устанавливает оба свойства в одну и ту же вещь.
DisplayMember - это текст, который вы хотите видеть, и ValueMember будет скрытым базовым значением, связанным с ним.
Ради примера, скажем, у вас есть класс, выбор в вашем проекте, который представляет ваш выбор и выглядит следующим образом:
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() возвращает список, содержащий ваш выбор. В идеале у вас будет такой метод на уровне сервиса, или вы можете создать свой собственный список в другом месте, если хотите (в коде вашей формы). Для простоты я объединил все это в одном классе.
В вашей форме вы бы связать список с DataGridViewComboBoxColumn следующим образом:
// 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
Теперь вы должны увидеть «One» и «два» в выпадающем списке. Когда вы получаете от него выбранное значение, оно должно быть базовым значением 1 или 2.
Идея использования DisplayMember/ValueMember. Это должно заставить вас идти и помочь вам адаптировать источник данных, который вы использовали.
Это идеальный ответ! Спасибо, Ахмад! Reinhard – 2009-09-08 16:39:43
Как мы можем прочитать выбранное значение выпадающей ячейки в datagrid? – Meysam
Не знал, что все так просто! благодаря – Jack