在WinForms中按值选择ComboBox

4
如何在WinForms中按值选择组合框?我将组合框设置为以下内容:
ComboboxItem item = new ComboboxItem();
                item.Text = "Test";
                item.Value = 1;

cmbComboBox.Items.Add(item);

internal class ComboboxItem
{
    public string Text { get; set; }
    public object Value { get; set; }

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

我需要选择 Value = 1 的地方。

1个回答

14
因为 ObjectCollection 没有实现泛型接口 IEnumerable<T> 只有 IEnumerable,所以无法使用 LINQ 标准查询运算符。不过,可以通过稍微欺骗一下,使用 Cast<T> 方法获取一个适用于 LINQ 查询的集合: var result = comboBox1.Items.Cast<ComboBoxItem>().Where(i => (int.Parse(i.Value.ToString())) == 1);

1
你需要将 i.Value 强制转换为 (int),然后在查询上调用 FirstOrDefault(),它将返回一个 ComboboxItem(或 null)。一旦你得到了它,就可以确定它在 Items 集合中的索引,以便设置 SelectedIndex()。 - Idle_Mind
没错,我认为他的“select”是指在ComboBox中选择该ComboboxItem。如果是这种情况,你也可以将SelectedItem()设置为返回的值。 - Idle_Mind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接