GridView связан с свойствами вложенного classа

У меня есть объектная карта, подобная той, что указана ниже. Когда я пытаюсь связать свойства NestedClass в GridView, я получаю ошибку:

«Поле или свойство с именем« NestedClass.Name »не было найдено в выбранном источнике данных».

GridView привязан к объекту ObjectDataSource, и ObjectDataSource привязан к полностью заполненному экземпляру BoundClass.

Есть ли способ обойти это?

Примеры classов:

public class BoundClass { public string Name { get; set; } public NestedClass NestedClass { get; set; } } public class NestedClass { public string Name { get; set; } } 

    В столбце BoundField могут отображаться только непосредственные свойства экземпляра.

    Вместо этого следует использовать DataBinder.Eval в элементе itemtemplate для доступа к вложенному свойству, а не назначению его на связанное поле.

    Пример:

       

    <%#DataBinder.Eval(Container.DataItem, "NestedClass.Name")%>

    Кроме того, вы можете создать собственный class, который наследует BoundField и переопределяет GetValue для использования DataBinder.Eval, как описано в этом сообщении в блоге:

    http://web.archive.org/web/20120121123301/http://iridescence.no/post/FixingBoundFieldSupportforCompositeObjects.aspx

    Это расширение на BoundField вызывает DataBinder.Eval() , которое поддерживает вложенные свойства:

     public class BetterBoundField : BoundField { protected override object GetValue(Control controlContainer) { if (DataField.Contains(".")) { var component = DataBinder.GetDataItem(controlContainer); return DataBinder.Eval(component, DataField); } return base.GetValue(controlContainer); } } 
    Давайте будем гением компьютера.