Я отправил вопрос на прошлой неделе, но на самом деле не понял, почему мне пришлось установить displaymember или valuemember для первого ответа.Значение ячейки DataGridViewComboBoxColumn, возвращающее нулевое значение
Смотря на другие форумы, я понимаю, что если я использую список, связанный с DataGridViewComboBoxColumn
, тогда я должен получить выбранное значение довольно легко.
вопрос я отвечал здесь:
Setting DataGridViewComboBoxColumn.Valuemember to a list<string>
теперь у меня есть этот код:
// set values to combobox column cells in datagridview
GridSellProducts.Rows.Add();
DataGridViewComboBoxColumn cmbItems = (DataGridViewComboBoxColumn)GridSellProducts.Columns["Item"];
cmbItems.DataSource = productNames;
cmbItems.AutoComplete = true;
GridSellProducts.EditingControlShowing += new
DataGridViewEditingControlShowingEventHandler(GridSellProducts_EditingControlShowing);
private void LastColumnComboSelectionChanged(object sender, EventArgs e)
{
string itemValue = GridSellProducts.Rows[GridSellProducts.CurrentCell.RowIndex].Cells["Item"].FormattedValue.ToString();
.......code
}
Однако значение строки ItemValue выше всегда нулевой, то есть строка ItemValue = "" ; когда я запускаю свой код. Почему это?
Добавлено:
Это, как я заселение productNames
private void AutocompleteItems()
{
// get products
productsURL = "https://eko-app.com/Products/list_products/sessionId:" + sessionID + ".json";
var products = Products.GetProducts(productsURL);
List<string> productNames = new List<string>();
foreach (var p in products)
{
var x = p.Product;
foreach (var pn in x)
{
productNames.Add(pn.name);
}
}
// set values to combobox column cells in datagridview
GridSellProducts.Rows.Add();
DataGridViewComboBoxColumn cmbItems = (DataGridViewComboBoxColumn)GridSellProducts.Columns["Item"];
cmbItems.DataSource = productNames;
cmbItems.AutoComplete = true;
GridSellProducts.EditingControlShowing += new
DataGridViewEditingControlShowingEventHandler(GridSellProducts_EditingControlShowing);
}
класса Продукты
//some code
public class Product
{
public string product_id { get; set; }
public string name { get; set; }
public decimal selling { get; set; }
public decimal buying { get; set; }
public string default_tax_tier { get; set; }
public string quantity_available { get; set; }
}