C# Can';t从绑定到LINQ的CheckedListBoxControl获取值和DisplayMember

C# Can';t从绑定到LINQ的CheckedListBoxControl获取值和DisplayMember,c#,linq,checkedlistbox,C#,Linq,Checkedlistbox,以前在StackOverflow上有人问过这个问题,所以你可能会认为这是一个重复的问题,但我已经尝试了很多解决方案,但我仍然被卡住了 我将WinForms CheckedListBoxControl绑定到LINQ查询,但无法获取值和DisplayMembers 以下是获取值和DisplayMember值的一些尝试: var avail = from c in dc.CostCenters select new { Item = c.CostCent

以前在StackOverflow上有人问过这个问题,所以你可能会认为这是一个重复的问题,但我已经尝试了很多解决方案,但我仍然被卡住了

我将WinForms CheckedListBoxControl绑定到LINQ查询,但无法获取值和DisplayMembers

以下是获取值和DisplayMember值的一些尝试:

 var avail = from c in dc.CostCenters
                       select new { Item = c.CostCenterID, 
                               Description = c.CostCenterID + ": " + c.Description };
                myList.DataSource = avail;
                myList.DisplayMember = "Description";


        //Retrieval:
        foreach (var item in myList.CheckedItems)
        {
            DataRowView row = item as DataRowView; //Try 1: row is empty
            string displayMember = item["Description"]; //Try 2: Cannot apply indexing with [] to an expression of type 'object'
            var x = item[0]; //Try 3: Cannot apply indexing with [] to an expression of type 'object'
            row3 = ((DataRowView)myList.CheckedItems[item]).Row; //Try 5 million: Compile error - invalid arguments
        }

假设您只想获取/显示您的ValueMembers/DisplayMembers: 从您提供的示例中,我假设您从linq查询中得到一个
IEnumerable
。我已将我的测试场景转换为
列表

当您选择了项目并希望进行检查时:

var checkedItems = checkedListBox1.CheckedItems;
foreach (dynamic checkedItem in checkedItems)
{
    Console.WriteLine("valuemember: " + checkedItem.Item);
    // or whatever code you have
}

希望这有帮助

什么
item.GetType()
?您使用标准或第三方LIB控件?我已经尝试了标准LIB和DevExpress LIB。我不介意哪一个有效。在本文中,我必须查看标准控件,因为它不是devExpress论坛。item.GetType()=Name=“f\uu匿名类型b6`2”
BindingSource bindingSource = new BindingSource(list, null);

checkedListBox1.DataSource = bindingSource;
checkedListBox1.ValueMember = "Item";
checkedListBox1.DisplayMember = "Description";
var checkedItems = checkedListBox1.CheckedItems;
foreach (dynamic checkedItem in checkedItems)
{
    Console.WriteLine("valuemember: " + checkedItem.Item);
    // or whatever code you have
}