我試圖將一些控件綁定到一個對象 - 這通常是一個非常簡單的過程。不幸的是,如果我結合自CollectionBase到繼承,綁定到類的字段的對象將導致錯誤:綁定到派生自CollectionBase的類的屬性
Cannot bind to the property or column Caption on the DataSource. Parameter name: dataMember
刪除CollectionBase的inheiritance使這個問題消失,但我需要這個對象是一個集合。看起來好像CollectionBase會導致更高級別的屬性變成「不可綁定的」。有一些我可以重寫的屬性來解決這個問題嗎?任何其他想法?
我在網上發現這個例子很容易總結這個問題。不幸的是,我還沒有找到我見過這個例子發佈的所有地方的答案。
代碼:
[STAThread]
static void Main()
{
TestCollection obj = new TestCollection();
using (Form f = new Form())
using (BindingSource bs = new BindingSource())
{
bs.DataSource = typeof(Test);
f.DataBindings.Add("Text", bs, "Caption");
bs.DataSource = obj; // breaks
//List<TestallData = new List<Test>();
//allData.Add(obj);
//bs.DataSource = allData;
f.ShowDialog();
}
}
class TestCollection : CollectionBase
{
public string Caption { get { return "Working"; } }
}
爲什麼要設置兩次DataSource?先打字,然後打個例子。 – abatishchev 2013-02-08 18:28:59