当项目是类时,查找组合框项目的索引

时间:2014-02-26 10:15:17

标签: c# winforms combobox

我尝试了FindStringExact,但它不起作用......

我有一个班级:

public class ModelLangPS {
    public string Id { get; set; }
    public string Name { get; set; }
}

和一个组合框:

Dictionary<string, ModelLangPS> list = new Dictionary<string, ModelLangPS>();
foreach(JObject o in value) {
    list.Add(o["@id"].ToString(), new ModelLangPS() {
        Id   = o["@id"].ToString(),
        Name = "some string"
    });
}
comboBxJezik.DataSource = list.Values.ToList();
comboBxJezik.DisplayMember = "name";
comboBxJezik.ValueMember = "id";
comboBxJezik.SelectedIndex = 0;

当我得到语言的id时,我想用id设置组合框项目。

类似的东西:

string langID = "5";
comboBxJezik.SelectedIndex = ???;

如果有人能帮助我,我将不胜感激:)

3 个答案:

答案 0 :(得分:4)

为什么需要索引?只需使用SelectedValue属性;

comboBxJezik.SelectedValue = langID;

答案 1 :(得分:2)

Findstringexact仅查看项目的显示成员。你可以这样做:

combo.SelectedItem = list.Values.SingleOrDefault(item => item.Id == id);

或者这个

combo.SelectedItem = list[id];

答案 2 :(得分:1)

我认为可行:

comboBxJezik.SelectedItem = list[langID].Name;