3

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

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

以编程方式设置的示例

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

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

在此处输入图像描述

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

在此处输入图像描述

然后它看起来像这样(默认值未选中):

在此处输入图像描述

4

3 回答 3

5

您可以取消订阅然后订阅事件,因为我认为当您使用 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
于 2013-10-08T09:50:26.760 回答
0

写 ComboBox.SelectedIndex = -1 这将解决你的问题

于 2013-10-08T09:41:28.823 回答
0

如果不写这个怎么办:

string[] items = {"Apple", "Orange", "Banana"}; 
comboBox1.DataSource = items;

你会这样写:

string[] items = {"Apple", "Orange", "Banana"};
//comboBox1.Items.Clear();
comboBox1.Items.AddRange(items);
于 2014-11-02T12:20:08.847 回答