以编程方式绑定数据源C#时,组合框选择的事件自动触发

我这里有一个愚蠢的问题,但我无法解决.问题是,当我以编程方式将组合框与数据绑定时,它将自动设置selectedItem,但是我使用属性字段添加项目,因此不会设置selectedItem.

我的问题是如何在不触发选定事件的情况下以编程方式绑定项目(意味着其行为类似于使用默认情况下未设置selectedItem的属性进行绑定)?提前致谢.

以编程方式设置示例

string [] items = {“ Apple”,“ Orange”,“ Banana”};
comboBox1.DataSource =项目;

程序运行时将如下所示(选择的默认值是Apple):

使用属性字段的示例设置项目(VS 2013)

然后将如下所示(未选择默认值):

解决方法:

您可以取消订阅然后订阅事件,因为我认为在VisualStudio中使用属性字段设置数据时,将在订阅事件之前应用所有设置.

//unsubscribe the event handler (change the name of the event handler to your real name)
ComboBox1.SelectedIndexChanged -= ComboBox1_SelectedIndexChanged

//do your initialization
string[] items = {"Apple", "Orange", "Banana"}; 
comboBox1.DataSource = items;
comboBox1.SelectedIndex = -1;

//subscribe to it again
ComboBox1.SelectedIndexChanged += ComboBox1_SelectedIndexChanged
上一篇:带有数据源和组合框的datagridview


下一篇:JavaFX ComboBox图像