ChanChan,
GridView не поддерживает привязку к коллекции интерфейсов,
Попробуйте переназначить свое приложение, чтобы обеспечить привязку только к коллекции конкретных классов.
Единственный обходной путь для этого - использовать базовый класс (в вашем случае Event) и привязать к коллекции событий.
public class Event
{
public DateTime StartDate { get; set; }
}
public class Birthday : Event
{
public DateTime? EndDate { get; set; }
}
public class Appointment : Event
{
public string Place { get; set; }
}
public class EventCollection : Collection<Event>
{
public static EventCollection GetEvents()
{
var events = new EventCollection();
events.Add(new Birthday
{
EndDate = DateTime.Now.AddDays(1),
StartDate = DateTime.Now
});
events.Add(new Appointment
{
Place = "Gallery",
StartDate = DateTime.Now
});
return events;
}
}
Обратите внимание, что наследование от базовых классов создает отношение «является», но наследование
из интерфейсов создает отношение «можно сделать». Другими словами, IMO, внедряющая IEvent
будет плохой дизайн, так как День рождения - это событие. Я бы унаследовал от базового класса здесь.
Надеюсь, это поможет,
Valve.