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); } } 
  • Как скрыть столбец (GridView), но все же получить доступ к его значению?
  • Android gridview сохраняет выбранный элемент
  • Android: Как GridView auto_fit находит количество столбцов?
  • Изменение цвета ячейки на разные значения - Gridview
  • Как отключить прокрутку GridView в Android?
  • Получить индекс Row в событии Rowcommand от Asp.net
  • Как получить значение ячейки по имени столбца не по индексу в GridView в asp.net
  • Как скрыть столбцы в ASP.NET GridView с автогенерированными столбцами?
  • Как удалить строку из GridView?
  • Сетка изображений внутри ScrollView
  • Как добавить параметр «подтвердить удаление» в ASP.Net Gridview?
  • Давайте будем гением компьютера.