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

C# 以编程方式绑定数据源c时,Combobox选择的事件自动触发#,c#,combobox,C#,Combobox,我这里有一个愚蠢的问题,但我解决不了。问题是,当我以编程方式将组合框与数据绑定时,它将自动设置selectedItem,但我使用属性字段添加项目,它不会设置selectedItem 我的问题是如何以编程方式绑定项而不触发所选事件(意味着它的行为类似于使用默认情况下不设置selectedItem的属性绑定)?提前谢谢 以编程方式设置的示例 字符串[]项={“苹果”、“橘子”、“香蕉”}; comboBox1.DataSource=项目 当程序运行时,它将如下所示(选择默认值,即Apple): 使

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

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

以编程方式设置的示例

字符串[]项={“苹果”、“橘子”、“香蕉”}; comboBox1.DataSource=项目

当程序运行时,它将如下所示(选择默认值,即Apple):

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

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


写入组合框。选择的索引=-1
这将解决您的问题

您可以先取消订阅,然后再订阅活动,因为我认为当您使用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

如果不写以下内容,而是:

string[] items = {"Apple", "Orange", "Banana"}; 
comboBox1.DataSource = items;
你将写下:

string[] items = {"Apple", "Orange", "Banana"};
//comboBox1.Items.Clear();
comboBox1.Items.AddRange(items);

我以前试过这个,它对我不起作用。它仍然会触发selectedIndexChanged事件Try SelectionChangeCommitted事件。好的,它可以不触发该事件,但它仍然会在comboxBox上显示该值。我想这不是我想要的。无论如何,谢谢@Palak Maheria停止显示组合框中的第一项,您可以使用组合框。SelectedIndex=-1谢谢@Bolu,这是我想要的。