#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