用途:VS 2012;
我有一个组合框附加到我的表单中的数据源。一切正常。当我运行表单时,一切正常;我可以在下拉列表中选择一个项目,它也会更新到数据源。当我需要在保存或删除我选择的内容后取消选择/恢复选择的内容时,我的问题就出现了(对于该字段值,基本上应该为null )。
我们的遗留系统是在Delphi 3 和 5中构建的,用户可以右键单击下拉列表并获得一个类似按钮的小弹出窗口,名为
空白的
哪些空白已选择。我找不到任何与用户在.NET 组合框中选择的内容相同的东西。
您可以使用以下代码在dropdown
命名(或类似名称)中添加新项目:-Select-
drp.DataSource = dataSet;
drp.DataBind();
// do it after binding
drp.Items.Insert(0, new ListItem("-Select-", "NA"));
如果你在 xaml 中绑定,那么在page_load
事件中你只能写这一行
drp.Items.Insert(0, new ListItem("-Select-", "NA"));
现在如果用户想取消选择,他/她将简单地选择-Select-
项目。
在感谢您的所有回答和建议的同时,我使用了@V4Vendetta 的想法并编写了我的解决方案。
与在单击删除键的数据网格视图中删除记录类似,我采用了相同的概念并将我的解决方案与删除键相关联。
我所做的是为 ComboBox 的按键事件创建了一个处理程序,例如:
private void comboBox_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
(sender as ComboBox).SelectedIndex = -1;
}
}
并链接到每个可用的 ComboBox
ComboBox1.KeyDown += new KeyEventHandler(comboBox_KeyPress);
ComboBox2.KeyDown += new KeyEventHandler(comboBox_KeyPress);
现在,当用户在 ComboBox 选择/活动时单击Delete键时,它会变为空白。