2010-06-29 3 views
1

Я пытаюсь добавить объекты в combobox и использовать свойство SelectedValue для выбора и элемента в combobox, но он не работает: SelectedValue по-прежнему является нулевым после назначения.Свойство ComboBox 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; 

ответ

5

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

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

operatorComboBox.DataSource = items; 

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

Смежные вопросы