2009-07-07 2 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를 구현하고 그 클래스에, 나는 List<IC>을 반환 GetData()라는 방법을 SampleClass라는 클래스가 있습니다.

내 Windows Form에는 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

그 답변에 나는 그의 질문이 * 왜 * IB와 IA의 방법이 아닌지 보여줄 것이라고 믿습니다 * 어떻게해야합니까? 방법이 나타납니다. 즉, IC가 IB와 IA를 상속하므로 IC에 IB와 IA 방법이 있습니까? –

답변

0

데이터 소스는 IC 목록 인 IC 목록에 바인딩됩니다. IC를 상속받은 구체적인 클래스를 그리드에 바인딩하면 IB도 볼 수 있습니다.

관련 문제