我的问题是“有没有办法将数据绑定到组合框而不更改/填充 selectedItem 和文本值?” (我希望组合框保持空白)
这是我正在做的一个例子:
Dictionary<int,string> test = new Dictionary<int,string>();
test.Add(1, "Company1");
test.Add(2, "Company2");
test.Add(3, "Company3");
test.Add(4, "Company4");
test.Add(5, "Company5");
test.Add(6, "Company6");
var list = test.Select(x => new { CompanyName = x.Value }).ToList();
comboBox1.DataSource = list;
comboBox1.DisplayMember = "CompanyName";
comboBox1.ValueMember = "CompanyName";
comboBox1.SelectedItem = null;
如果您运行此代码,它可以正常工作,因为它加载速度非常快,看起来组合框保持空白。
但是,如果您单步执行代码,您将看到当将 DataSource 分配给“list”时,SelectedItem 和 Text 值发生了变化。
我实际的 LINQ 查询要大一些,因此加载速度较慢。我的组合框在 Text 值被清除之前“闪烁”它,我想删除这个难看的 flash。
我已经尝试在 DataSource 分配之前和之后将 SelectedItem 和 Text 值设置为 null(或“”)的不同组合,但我无法让“flash”消失。
任何建议都非常感谢!=)
编辑:我还想补充一点,这只发生在初始表单加载时......如果我更改绑定源然后重置回我的原始(再次运行完全相同的代码),它不会“闪烁”......不确定这是否有帮助或有所作为......