Situation J'ai 3 Interface définie comme suit.WinForms DataGridView Question
public interface IA { long ID { get; set; } }
public interface IB : IA { string Name { get; set; } }
public interface IC : IB { string City { get; set; } }
, j'ai une classe appelée SampleClass
qui implémente IC
et dans cette classe, j'ai une méthode appelée GetData()
qui retourne List<IC>
. Puis dans mon Windows Form, j'ai un DataGridView
. Je lie la grille comme suit.
SampleClass sampleClass = new SampleClass();
List<IC> list = new List<IC>();
foreach (var item in sampleClass.GetData())
{
list.Add(((C)item));
}
dataGridView1.DataSource = list;
Question La grille affiche uniquement les champs de l'interface IC
et aucun des champs de l'interface IB
ou IA
apparaît. Une idée pourquoi?
Mettez à jour vos étiquettes pour inclure quelle langue, ressemble à C# mais ... –
À ceux qui répondent, je crois que sa question est * POURQUOI * les méthodes d'IB et d'IA n'apparaissent-elles pas, non * COMMENT DOIS-JE * faire les méthodes apparaissent. En d'autres termes, puisque IC hérite de IB et IA, IC ne devrait-il pas avoir des méthodes IB et IA? –