2015-02-02 2 views
0

Я следующий код как часть WPF Я создаю:Запросы относительно combobox.valuemember при использовании пользовательского словаря

Dictionary<string, string[]> storeDictionary = new Dictionary<string, string[]>(); 

private void populateDropbox() 
    { 
     storeDropDown.DataSource = new BindingSource(storeDictionary, null); 
     storeDropDown.DisplayMember = "Key"; 
     storeDropDown.ValueMember = "Value"; 
     storeDropDown.SelectedValue = 0; 
    } 

Примечание: storeDropDown это имя ComboBox.

Как я могу получить storeDropdown.Valuemember, чтобы быть первым элементом строки []?

Пожалуйста, обратите внимание, что это моя первая программа, а C# - мой первый язык программирования.

Если вам нужна дополнительная информация, дайте мне знать, спасибо.

ответ

0

Вы говорите, что используете WPF, но ComboBox, который вы используете, происходит из winforms. Итак, на чем вы на самом деле работаете?

Предполагая, что вы используете Winforms (выпадающий список из вашего примера) Вот мое решение:

1 - Создать класс инкапсулировать массив строки и переопределить метод

internal class CustomArrayOfStrings 
{ 
    public string[] _strings; 

    public override ToString() 
    { 
     return _strings[0]; 
    } 
} 

ToString() Теперь ваш словарь выглядит как-то вроде этого:

Dictionary<string, CustomArrayOfStrings> storeDictionary = new Dictionary<string, CustomArrayOfStrings>(); 

2- Затем, чтобы отобразить первый элемент в вашем ComboBox изменении

storeDropDown.DisplayMember = "Key"; 

в

storeDropDown.DisplayMember = "Value"; 

Это будет вызывать ToString Methode вашей Value Wich является CustomArrayOfStrings.

3 - Если вы хотите, чтобы манипулировать выбранный первый элемент вашего массива, вы можете сделать это следующим образом:

CustomArrayOfStrings selected = storeDropDown.SelectedValue as CustomArrayOfStrings; 
string firstValue = selected._strings[0]; 
+0

Рай, да ты прав, я использую WinForms. Я попробую сегодня вечером и вернусь к вам, но это выглядит именно так, что я ищу. –

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