C #: Как связать HashTable с ComboBox через Enum в качестве ключа? - PullRequest
1 голос
/ 09 июня 2010
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 : Извините, это работает. Мой плохой

1 Ответ

2 голосов
/ 09 июня 2010

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

comboResult.SelectedValue = m_defaultResult; 

ComboTOResult, может быть, другое поле?

...