我想綁定一個集合(從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