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); } } 
    Interesting Posts

    Как программно заблокировать / разблокировать экран?

    Ошибка Android MediaPlayer (1, -2147483648)

    Как передавать значения на страницах ASP.net без использования сеанса

    Почему компилятор Scala запрещает перегруженные методы с аргументами по умолчанию?

    Как установить условную точку останова в Xcode на основе свойства объекта?

    Android проверить подключение к Интернету

    Форматирование вывода: слишком много пробелов в gfortran

    Могу ли я повторно подписать .apk с другим сертификатом, чем тот, с которым он пришел?

    В чем разница между% и %% в файле cmd?

    WebMatrix / IIS Express работает только с Opera!

    Как правильно использовать собственные средства визуализации для рисования конкретных ячеек в JTable?

    Как получить дополнительную информацию о изображениях Windows Spotlight?

    Являются ли HTTP-cookies конкретными?

    Скопировать всю иерархию файловой системы с одного диска на другой

    Как установить максимальную дату в диалоговом окне datepicker в android?

    Давайте будем гением компьютера.