Свойство ComboBox SelectedValue не работает - PullRequest
1 голос
/ 29 июня 2010

Я пытаюсь добавить объекты в выпадающий список и использовать свойство 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; 

1 Ответ

5 голосов
/ 29 июня 2010

ValueMember применимо только при привязке данных через свойство DataSource, но не при добавлении элементов вручную с помощью Items.Add.Попробуйте это:

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

operatorComboBox.DataSource = items;

Кстати, обратите внимание, что когда вы переопределяете Equals, вы также должны переопределить и реализовать GetHashCode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...