Linq 如何将网格数据复制到对象

Linq 如何将网格数据复制到对象,linq,casting,grid,Linq,Casting,Grid,我正在尝试将网格数据复制到一个对象 代码: object obj = GrdReport.ItemsSource; PrepareDataForStackedChart1(obj); 该函数定义为 private void PrepareDataForStackedChart1(object categoies) { var Salespersons = (from cat in categoies

我正在尝试将网格数据复制到一个对象

代码:

object obj = GrdReport.ItemsSource;    
PrepareDataForStackedChart1(obj);
该函数定义为

private void PrepareDataForStackedChart1(object categoies)           
{              
    var Salespersons = (from cat in categoies    
                    select cat.Salesperson);    
}
我得到一个错误:

无法从“lambda表达式”转换为“System.Linq.Expressions.LambdaExpression”


有人能告诉我如何在linq查询中访问该对象吗?

编辑:刚刚得知您正在使用第三方控件(),该控件的
ItemSource
属性采用
System.object
而不是
IEnumerable
。在这种情况下,可以将对象(
ItemSource
)强制转换回原始类型,或者维护用于将控件绑定到某个位置的原始集合,并将该集合传递给
PrepareDataForStackedChart1
方法

有人猜测:

1) 任一

object obj = GrdReport.ItemsSource;    
PrepareDataForStackedChart1((IEnumerable<Category>)obj);

private void PrepareDataForStackedChart1(IEnumerable<Category> categories)           
{              
    var Salespersons = (from cat in categories    
                    select cat.Salesperson);    
}
像这样复制备份:

categories = GetCategories(); //categories is defined in proper scope.
GrdReport.ItemsSource = categories;
后来你做了

PrepareDataForStackedChart1(categories);

private void PrepareDataForStackedChart1(IEnumerable<Category> categories)           
{              
    var Salespersons = (from cat in categories    
                    select cat.Salesperson);    
}

我假设您有父类
类别

您需要将类别转换为它的类型我正在使用DataGridView在silverlight.GrdReport中创建报告。在我的报告中,我必须使用复选框来增加几列。当我选中复选框时…列正在添加到DatagridView。这就是我直接使用Itemsource值的原因。而不是使用你的第二个选项。@NeeruBindela从这里很难理解。从对你的帖子一无所知的第三方的角度阅读你的帖子。你会意识到理解你的问题是多么困难。在你的智能感知中,它会列出gridview对象上列出的一组方法、属性、字段、事件等。换句话说,在
GrdReport
后面放一个点,您将看到它将有一些gridview行的集合。它将被命名为
。它看起来像
GrdReport.Rows
GrdReport.Items
,然后您可以通过适当的强制转换将其传递给您的
PrepareDataForStackedChart1
方法。可能是这样的:
GrdReport.Items.OfType()
PrepareDataForStackedChart1(categories);

private void PrepareDataForStackedChart1(IEnumerable<Category> categories)           
{              
    var Salespersons = (from cat in categories    
                    select cat.Salesperson);    
}
var categories = GrdReport.ItemsSource.OfType<Category>();    
PrepareDataForStackedChart1(categories);

private void PrepareDataForStackedChart1(IEnumerable<Category> categories)           
{              
    var Salespersons = (from cat in categories    
                        select cat.Salesperson);    
}