ChanChan, GridView делает поддержку не привязку к набору интерфейсов, Попробуйте redisigning приложения, чтобы обеспечить привязку только к набору concreate классов. Единственным обходным решением для этого является использование базового класса (в вашем случае 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;
}
}
Пожалуйста, обратите внимание, что наследование от базовых классов создает «является» отношение, но наследующий от интерфейсов создает «может сделать» отношения. Другими словами, ИМО, реализующий IEvent , будет плохим дизайном, поскольку День рождения - это событие. Я бы наследовал от базового класса здесь.
Надеюсь, что это поможет, Клапан.
Это может быть сделано, есть несколько обходных путей: использование наследования, а не интерфейсы, провайдеры используют, использовать пользовательские BoundFields (http://iridescence.no/post/FixingBoundFieldSupportforCompositeObjects.aspx) ... – 2010-01-06 16:00:00