c# - ComboBox SelectedValue 属性不起作用

标签 c# .net winforms data-binding combobox

我正在尝试将对象添加到组合框中并使用 SelectedValue 属性来选择组合框中的项目,但它不起作用:SelectedValue 在作业。

        class ComboBoxItem
        {
            string name;
            object value;

            public string Name { get { return name; } }
            public object Value { get { return value; } }

            public ComboBoxItem(string name, object value)
            {
                this.name = name;
                this.value = value;
            }

            public override bool Equals(object obj)
            {
                ComboBoxItem item = obj as ComboBoxItem;
                return item!=null && Value.Equals(item.Value);
            }
        }          

            operatorComboBox.Items.Add(new ComboBoxItem("Gleich", SearchOperator.OpEquals));
            operatorComboBox.Items.Add(new ComboBoxItem("Ungleich", SearchOperator.OpNotEquals));


            operatorComboBox.ValueMember="Value";
            //SelectedValue is still null after this statement
            operatorComboBox.SelectedValue = SearchOperator.OpNotEquals; 

最佳答案

ValueMember 仅在通过 DataSource 属性进行数据绑定(bind)时适用,而不适用于使用 Items.Add 手动添加项目时。试试这个:

var items = new List<ComboBoxItem>();
items.Add(new ComboBoxItem(...));

operatorComboBox.DataSource = items;

顺便说一句,请注意,当您覆盖 Equals 时,您还应该覆盖并实现 GetHashCode

关于c# - ComboBox SelectedValue 属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140910/

相关文章:

c# - 以最大并发度运行多个操作 - 最后 2 个任务未执行

c# - 更新亚马逊商城中的商家订单 ID

c# - 使用 Sqlite 数据库填充包含日期时间列的数据集

asp.net - 使用 websockets javascript 时出现错误 200

c# - LINQ 中的日期格式

c# - WPF 工具包向导从我的代码中的页面访问控制

.net - 自签名证书。基础连接已关闭: Could not establish trust relationship

asp.net - 如何在Visual Studio 2019中创建ASP.NET网站?

c# - WinForm 组合框控件 DotNet 4.8 中的错误 - VS2019

c# - 在计算机上运行 c# winform 程序需要什么