2009-07-07 5 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; } } 

Тогда у меня есть класс с именем SampleClass, который реализует IC и в этом классе, у меня есть метод, называемый GetData(), который возвращает List<IC>.

Тогда в моей форме 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#, но ... – 2009-07-07 18:09:00

+0

Для тех, кто отвечает, я считаю, что его вопрос: * ПОЧЕМУ * не отображаются методы IB и IA, а не * КАК Я * появляются методы. Другими словами, поскольку IC наследует IB и IA, IC не должен иметь методы IB и IA? –

ответ

0

Источник данных привязан к списку IC, данных IC дисплея сетки. Если вы привяжете свою сетку к конкретному классу, который наследует IC, вы также сможете увидеть IB.

Смежные вопросы