С#: как привязать HashTable к ComboBox через Enum в качестве ключа?

public static Hashtable m_results = new Hashtable();
private BindingSource m_bindResults = new BindingSource();

// in static constructor
m_results.Add(MyResultTypes.Failed, "Failed");
m_results.Add(MyResultTypes.Pending, "Is Pending");
m_results.Add(MyResultTypes.Completed, "Was Completed");
m_results.Add(MyResultTypes.Cancel, "Cancel it");
m_defaultResult = MyResultTypes.Pending;

// in instance constructor
m_bindResults.DataSource = m_results;
comboResult.DataSource = m_bindResults;
comboResult.ValueMember = "Key";
comboResult.DisplayMember = "Value";
comboResult.SelectedValue = m_defaultTimeoutResult;

Приведенный выше код не работает :) Он использовал строки для ключей в хеш-таблице вместо перечисления MyResultTypes, и это работало. Теперь происходит то, что поле со списком заполняется значениями хеш-таблицы (как я хочу), но выбранное по умолчанию значение не выбирается.

Как я могу использовать перечисления в этом примере? Благодарность

Изменить: извините, ComboTOResult был comboResult, пропустил его

Изменить 2: извините, это работает. Виноват


person flamey    schedule 09.06.2010    source источник


Ответы (1)


У меня работает, когда я меняю последнюю строку на

comboResult.SelectedValue = m_defaultResult; 

ComboTOResult может быть другой ящик?

person Mike    schedule 09.06.2010
comment
Извините, ComboTOResult был comboResult. Пропустил это при публикации, но у меня все еще не работает :-/ Снова смотрю на ти..... - person flamey; 09.06.2010
comment
Ты прав. У меня остался еще один фрагмент кода в Show(), оставшийся от строк. Спасибо! - person flamey; 09.06.2010