2012-10-17 86 views
1

我有對象的集合,其具有以下結構:如何將DataBindings用於集合中的各種對象?

public class Parent 
{ 
    public string Title { get; set; } 
    public string Guid { get; set; } 
} 

public class Child:Parent 
{ 
    public string Description { get; set; } 
} 

List<Parent> collection ; 
collection = new List<Parent>(); 

collection.Add(new Parent()); 
collection.Add(new Parent()); 
collection.Add(new Child()); 
collection.Add(new Child()); 
collection.Add(new Parent()); 

所以有些元素是從父類型和一些從兒童型(我有集合中的對象之間的繼承關係)。

我用下面的綁定:

txtTitle.DataBindings.Add("Text", _BindingSource, "Title"); 
txtGuid.DataBindings.Add("Text", _BindingSource, "Guid"); 
txtDescription.DataBindings.Add("Text", _BindingSource,"Description"); 

首先兩個綁定明顯做工精細。但是,我應該怎樣做才能正確顯示數據?

+0

我沒有把任何代碼插入集合。您可以考慮我們有以下插入: collection = new List (); collection.Add(new Parent()); collection.Add(new Parent()); collection.Add(new Child()); collection.Add(new Child()); collection.Add(new Parent()); – Barsham

+0

孩子是家長的兒童班。請先嚐試一下代碼,然後聲稱它不起作用。 – Barsham

+0

這裏的問題不是將數據插入到集合中的代碼。很顯然,我已經收集了我收集的有關裝訂的資料。 – Barsham

回答

1

在他的書「與Windows窗體2.0的數據綁定」一書中,p。 125,作者Brian Noyes說BindingSource中的項目必須是同質的,即相同類型的項目。

看來你想要做的事情是不可能的,至少不能用BindingSource組件。

+0

謝謝,可能我必須將所有類合併成一個。 – Barsham

+1

或者你可以讓他們實現相同的接口 –