Эквивалент выбора html-тега в компонентах C #?

#c# #.net #combobox

#c# #.net #combobox

Вопрос:

Я использую компонент combobox, он кажется эквивалентным тегу select html, но не имеет значения в combobox? Например:

HTML select:

 <select name="foo">
<option value="baa">xxx</option>
<option value="foo">yyy</option>
</select> 
  

если выбрано значение xxx , возвращаемое baa значение для меня

возможно ли это сделать с помощью какого-либо компонента C #?

Надеюсь, это понятно. Заранее спасибо.

Комментарии:

1. Доступно несколько похожих элементов управления, вы можете использовать обычный combobox , который ведет себя именно так

Ответ №1:

Вы можете использовать обычный элемент управления ComboBox, но с небольшой настройкой. Каждый элемент, добавляемый в поле со списком, является object и при рендеринге вызывает ToString() метод.

Мы можем создать пользовательский класс для добавления в качестве элемента со списком:

 public class ComboBoxItem
{
    public ComboBoxItem(string value, string text)
    {
        Value = value;
        Text = text;
    }

    public string Value { get; set; }
    public string Text { get; set; }

    public override string ToString()
    {
        return Text;
    }
}
  

Теперь вы можете создать экземпляр вышеупомянутого класса и добавить его в ComboxBox.Items коллекцию.

 private void Form1_Load(object sender, EventArgs e)
{
    comboBox1.Items.Add(new ComboBoxItem("1", "Green"));
    comboBox1.Items.Add(new ComboBoxItem("2", "Blue"));
    comboBox1.Items.Add(new ComboBoxItem("3", "Yellow"));
}
  

И вы можете получить доступ к выбранному элементу, который является экземпляром CombBoxItem , путем приведения comboBox1.SelectedItem к CombBoxItem

 var comboBoxItem = (ComboBoxItem) comboBox1.SelectedItem;
comboBoxItem.Text  //Green/Blue/Yellow
comboBoxItem.Value //1/2/3