我的问题我无法读取组合框的选定字典对的值
我使用了组合框的绑定
comboBoxNutzungsart.DataSource = new BindingSource(Zordnung.dieListe, null);
comboBoxNutzungsart.DisplayMember = "Key";
comboBoxNutzungsart.ValueMember = "Value";
这是我的词典“dieListe”
public static class Zordnung
{
public static Dictionary<String, Double> dieListe = new Dictionary<String, double>()
{
{"Bitte auswählen", 0},
{"Wohnung", 50},
{"Büro",
}
}
现在我想要所选键的价值,但我没有尝试成功
我试过了:
private void comboBoxNutzungsart_SelectedIndexChanged(object sender, EventArgs e)
{
double BerechneterWert;
string text = comboBoxNutzungsart.Text;
double zahl = Zordnung.dieListe[text]
}
但是有了这个,字典中的整个元素都会出现text =“[Bitteususwählen,0]”
以及类似的东西
Dictionary<string, double> selectes =
(Dictionary<string, double>)comboBoxNutzungsart.SelectedItem;
我得到一个包含所选项目的词典我如何获得该值?
答案 0 :(得分:1)
您遇到的问题似乎是comboBox项目都是KeyValuePair<string, double>
类型的对象,但您只是在访问该类型的ToString()
实现时你得到.Text
财产。
您可以做的是将项目投射到实际类型,然后您可以访问Value
(或Key
):
private void comboBoxNutzungsart_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedItem = (KeyValuePair<string, double>) comboBoxNutzungsart.SelectedItem;
string text = selectedItem.Key;
double zahl = selectedItem.Value;
}
修改强>
另一个想法是,如果您只需要Value
,那么您可以通过将Zordnung.dieListe
作为列表并使用与{相同的索引访问项目来从Values
访问它{1}}:
comboBoxNutzungsart.SelectedIndex