我有一个组合框,可以通过单击下拉箭头来加载数据库以加载它的内容。如果在下拉框中显示数据并且我没有选择任何内容,则组合框的当前值会被吹走。在我加载数据的例程中,我尝试保存当前值并在加载完成后将其恢复。不起作用。
[编辑]在此处添加了评论中的代码以获取易读性
MyUltraCombo myultracombo = new MyUltraCombo();
//MyUltraCombo inherits from UltraCombo inside MyUltraCombo, I keep the table name to load from
MyUltraCombo.BeforeDropDown += new System.ComponentModel.CancelEventHandler(cb_BeforeDropDown);
//inside the eventhandler
myultracombo.Load();
//inside the Load method
datatable = DataUtility.GetAllRecords(tablename);
combobox.datasource = datatable;
答案 0 :(得分:1)
如果将“当前值”存储为SelectedItem
属性,则它可能不是新列表中存在的对象,因为它将包含全新的对象。您需要做的是存储当前值的ID(如果您幸运拥有唯一ID),然后在新创建的列表中搜索具有相同ID的对象(或者您用于唯一标识项目的任何内容) ,也许只是ToString()
...)。