2009-07-07 15 views
0

状況 私は以下のように3つのインタフェースを定義しています。WinForms DataGridView質問

public interface IA { long ID { get; set; } } 

public interface IB : IA { string Name { get; set; } } 

public interface IC : IB { string City { get; set; } } 

は、その後、私はICを実装SampleClassというクラスがあり、そのクラスでは、私がList<IC>を返すGetData()と呼ばれる方法があります。

私のWindowsフォームには、DataGridViewがあります。私は次のようにグリッドをバインドしています。

SampleClass sampleClass = new SampleClass(); 
List<IC> list = new List<IC>(); 

foreach (var item in sampleClass.GetData()) 
{ 
    list.Add(((C)item)); 
} 

dataGridView1.DataSource = list; 

質問 グリッドインターフェイスICからフィールドのみを表示し、インタフェースIB又はIAのフィールドのいずれも現れません。どんな考え?

+0

タグを更新してC#のように見えますが... –

+0

これらの人には、私は彼の質問が* WHY * IBとIAの方法は現れていないと思います。メソッドが表示されます。言い換えれば、ICはIBとIAを継承しているため、ICにはIBとIAメソッドがあるべきではないでしょうか? –

答えて

0

データソースはICのリストにバインドされています。グリッド表示のICデータです。 ICを継承する具体的なクラスであるグリッドをバインドすると、IBも見ることができます。

関連する問題