DataGridView没有绑定IEnumerable <tresult>但是List <tresult> </tresult> </tresult>

时间:2011-02-14 07:55:47

标签: linq-to-sql c#-4.0 lambda

我写了这段代码:

public List<TResult> SelectAll<TResult>(Func<Regions, TResult> selector) where TResult : class
{
    using (RepositoryDataContext = new DataClasses1DataContext())
    {
        return RepositoryDataContext.Regions.Select<Regions, TResult>(selector).ToList<TResult>();
    }
}

以这种方式从表单中调用它:

dgvFindFirst.DataSource = clsr.SelectAll<SelectAllRegion>(MY SELECT LAMBDA EXP);

但是在编写这样的方法时:

public IEnumerable<TResult> SelectAll<TResult>(Func<Regions, TResult> selector) where TResult : class
{
    using (RepositoryDataContext = new DataClasses1DataContext())
    {
        return RepositoryDataContext.Regions.Select<Regions, TResult>(selector).AsEnumerable<TResult>();
    }
}

DataGridView Not Bound任何Nothing返回。 有什么问题?

1 个答案:

答案 0 :(得分:6)

DataGridView DataSource属性可以是实现其中一个接口的任何对象:IListIListSourceIBindingListIBindingListView,哪个List<T>会这样做,但IEnumberable<T>没有。参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasource.aspx