C# WinForms-组合框:查找选定项并设置索引

C# WinForms-组合框:查找选定项并设置索引,c#,winforms,combobox,telerik,C#,Winforms,Combobox,Telerik,我有一个RadMultiColumnComboBox类型的ComboBox控件,我试图搜索并找到一个字符串,然后以编程方式设置所选索引 这是我的密码: // get reference to drop down: RadMultiColumnComboBox myComboBox = this.BaseFieldControl; // find and set: string toFind = "SomeValue";

我有一个RadMultiColumnComboBox类型的ComboBox控件,我试图搜索并找到一个字符串,然后以编程方式设置所选索引

这是我的密码:

        // get reference to drop down:
        RadMultiColumnComboBox myComboBox = this.BaseFieldControl;

        // find and set: 
        string toFind = "SomeValue";
        myComboBox.SelectedIndex = myComboBox .FindExact( toFind );
问题是,无论我将什么字符串传递到FindExact,controls FindExact方法都返回-1

当应用程序运行时,我使用即时窗口测试并输入各种字符串;无论我使用什么字符串,它都返回-1

如果我检查myComboBox,DataSource属性中有10项

下面是组合框的一个表示形式-它可能会有帮助:


您可以将数据源强制转换为原始类型,并从数据源中查找索引:

var data=(List<YourType)myComboBox.DataSource;
myComboBox.SelectedIndex=data.FindIndex(p=>p.Text=="SomeValue");
var data=(Listp.Text==“SomeValue”);

您可以将数据源强制转换为原始类型,并从数据源中查找索引:

var data=(List<YourType)myComboBox.DataSource;
myComboBox.SelectedIndex=data.FindIndex(p=>p.Text=="SomeValue");
var data=(Listp.Text==“SomeValue”);

p.Text是一个必须用p替换的示例。(您要搜索的字段)=“SomeData”我收到一个异常:{“无法将'System.ComponentModel.BindingList'类型的对象强制转换为'System.Collections.Generic.List1[ECS.Common.Entities.MyType]”我想我需要转换成List?ps这是我更新的代码示例:var data=(List)myComboBox.DataSource;myComboBox.SelectedIndex=data.FindIndex(p=>p.DisplayValue==“SomeValue”);如果在第1行中使用databindingsource,请替换以下内容:var data=(Listp.Text是一个必须替换为p的示例。(您要搜索的字段)=“SomeData”我收到一个异常:{“无法将'System.ComponentModel.BindingList
1[ECS.Common.Entities.MyType]类型的对象强制转换为'System.Collections.Generic.List
1[ECS.Common.Entities.MyType]。“}我想我需要转换到List?ps这是我更新的代码示例:var data=(List)myComboBox.DataSource;myComboBox.SelectedIndex=data.FindIndex(p=>p.DisplayValue==“SomeValue”);如果在第1行中使用数据绑定源,请替换这个:var data=(List)