我想绑定一个集合(从BindingList继承)到DataGridView。网格标题显示正常,我得到了我期望的行数。但是,这些单元格是空的。有没有其他人有这个问题?如果是这样,你是如何解决它的?我曾与其他有同样问题的人谈过,但他们不记得他们是如何解决这个问题的。我试图创建一个简单的版本来显示问题,但没有任何运气。所以我很抱歉,我没有包含任何代码。DataGridView行显示,但没有数据
编辑#1:
我不认为这个代码将有助于但为了以防万一。我已经简化了一些内容,以防止我们需要概述代码的47层。但就像我说的,我不能用这样一个非常简单的例子重新创建问题。我并不是真的想要分析代码 - 只是那些遇到这个问题的人的智慧的话。当然,我不是唯一一个。
public interface ISearchResultCollection : IList<ISearchResult>
{
...
}
public class SearchResultCollection : BindingList<ISearchResult>, ISearchResultCollection
{
...
}
public interface ISearchResult
{
ILineNum LineNumber {get; set;}
string Text {get; set;}
}
public class SearchResult
{
...
}
ISearchResultCollection results = objectToSearch.Find("searchstring");
dataGridView1.DataSource = results;
编辑#2:
我想我已经得到了领先优势。表示项目(ISearchResult)的所有公共属性都是接口类型。我添加了一个字符串属性,其数据奇迹般地显示出来。所以,在上面的例子中,Text列的数据会显示出来。但是LineNumber列的数据不会因为它是一个接口类型(ILineNum)。我想ToString()将被调用来填充这些网格。现在有什么想法?
你能举出更多你试图绑定的对象的例子吗?例如,“从BindingList继承的集合”是什么样的?你如何将你的对象绑定到DataGridView?直接或通过BindingSource?你确定你的对象有数据吗? 这是很难回答,没有代码分析。 :) – 2009-11-05 20:17:23
我做了一些编辑以包含代码的外壳。我不确定这会有多大帮助。我已经验证调试器中有数据。 – bsh152s 2009-11-05 21:08:06