Мой клиент попросил меня добавить описательный текст в выпадающий список со списком. У меня есть эта часть, работающая правильно, но данные не загружаются должным образом обратно в поле со списком. Я решил, что это связано с тем, что когда описательный текст установлен в свойстве ListItem.Text
, он распространяется на ListItem.Value
. Но я не хочу менять Value
.Изменение текста ListItem в поле со списком без изменения его значения
Мой код:
public static List<ListItem> MakeDescriptiveList()
{
List<ListItem> items = new List<ListItem>();
items.Add(new ListItem(string.Empty));
for (double i = 1.0; i > -1E-9; i -= 0.05) //Roundoff error discovered!
{
string value = i.ToString("0.0#");
items.Add(new ListItem(value));
}
items.Find(x => x.Value == "1.0").Text = "1.0\t Foo foo foo";
items.Find(x => x.Value == "0.9").Text = "0.9\t Bar bar bar";
items.Find(x => x.Value == "0.8").Text = "0.8\t Baz baz baz";
///intermediate items skipped
items.Find(x => x.Value == "0.0").Text = "0.0\t FAIL";
return items;
На загрузке данных, код пытается установить ComboBox1.SelectedValue = value
, где value
является «1,0» при преобразовании в строку. Но это не так, как ни Text
, ни Value
матч.
Каков наилучший способ настроить мой описательный текст в поле со списком, не изменяя значения выбранных?
(Моя долгосрочная цель, за отставания текущего выпуска, является, чтобы переместить все это в базу данных. Тогда я могу просто установить Text = db.Text
с последующим Value = db.Value
и все будет работать, как я хочу.)