C# Can';t从绑定到LINQ的CheckedListBoxControl获取值和DisplayMember
以前在StackOverflow上有人问过这个问题,所以你可能会认为这是一个重复的问题,但我已经尝试了很多解决方案,但我仍然被卡住了 我将WinForms CheckedListBoxControl绑定到LINQ查询,但无法获取值和DisplayMembers 以下是获取值和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
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
}