我有一个简单的DataGridView:
我有一个班级:
public class TemplateItem
{
public string Name { get; set; }
public decimal Price { get; set; }
}
以及存储模板的列表:
List<TemplateItem> templates = new List<TemplateItem>();
// Some code to populate the list
对于&#34;姓名&#34;网格中的单元格,我想:
templates
列表中的自动填充选项templates
列表我知道如何使用EditingControlShowing事件启用自动填充,例如在this question中。
我不知道如何检测自动填充选项的选择。 Using KeyDown event对我不起作用 - 它永远不会发生。
而且我不知道如何获得所选期权的价格。假设我能够选择&#34;选项&#34;事件,我可以浏览模板并找到一个具有相同名称的模板......但这对我来说似乎是丑陋的代码。我应该能够以某种方式传递关于每个选项的价格的信息,对吗?
答案 0 :(得分:0)
我最终重新修改了我的用户界面,因此网格不再允许用户输入新行。相反,我有一个单独的ComboBox
(DropDownStyle
设置为DropDown
),其中启用了自动提示,并且添加了&#34;添加&#34;按钮,根据组合框中的值插入新行。如果选择了现有模板,也会插入其价格;否则,只插入输入的文本。
如果有人知道如何在datagridview中实现相同的功能,请告诉我。