小编Rev*_*vaz的帖子

Winforms ComboBox SelectedItem更改不会影响BindingSource

我正在制作C#/ WinForms应用程序.我无法解决的问题是,当我以编程方式更改ComboBox的SelectedItem时,它会被更改,直到ComboBox失去焦点,之后它会在分配SelectedItem之前"提醒"其值.我认为它需要来自绑定源的旧值.当使用UI选择项目时,底层绑定对象会正常更新,但是当我以编程方式将新值分配给SelectedItem时,情况并非如此.

只是为了获得更多信息:我正在尝试实现"撤销",这意味着我将保存每个更改,并且当编辑>>>撤消我正在撤消用户完成的所有这些更改.有趣的是,其他控件(TextBoxes,NumericUpDowns)工作正常.

以下是详细信息:

我有一个ComboBox,它绑定到ComboItem对象,如下所示:

ComboBox comboBox = new ComboBox();
List<ComboItem> items = new List<ComboItem>();
ComboList comboList = Configuration.ComboList.LoadComboList();

Combo myCombo = comboList.GetCombo(control.MemberName);
if (myCombo != null)
{
    items.Add(new ComboItem(0, "", 0.0, 0.0));
    for (int index = 0; index < myCombo.ComboItems.Count; index++)
    {
        items.Add(myCombo.ComboItems[index]);
    }
}
Run Code Online (Sandbox Code Playgroud)

其中Combo和ComboList是用于从配置文件加载数据的自定义类.然后我也设置了Display和Value成员以及DataSource:

comboBox.DisplayMember = "Text";
comboBox.ValueMember = "Key";
comboBox.DataSource = items;
Run Code Online (Sandbox Code Playgroud)

"Text"和"Key"是ComboItem类的成员:

public class ComboItem
{
    public int Key { get; set; }
    public string Text { get; set; }
    public double Coef1 { get; …
Run Code Online (Sandbox Code Playgroud)

c# binding combobox selecteditem winforms

8
推荐指数
1
解决办法
9313
查看次数

标签 统计

binding ×1

c# ×1

combobox ×1

selecteditem ×1

winforms ×1