Привязка объекта с sub возражает как свойства против datagrid

Вам нужно использовать Bootstrap 3? Вы можете использовать переупорядочение в Bootstrap 4:

html:

<div class="container-fluid">
  <h1>Push and Pull</h1>
  <div class="row">
    <div class="col-sm-4">Col 1</div>
    <div class="col-sm-12 order-sm-last">Col 3</div>
    <div class="col-sm-8 ">Col 2</div>
  </div>
</div>
8
задан dakab 28 September 2015 в 19:12
поделиться

3 ответа

Если я не ошибаюсь, это показывает результат вызова.ToString () на Вашем подобъекте, таким образом, можно переопределить это для возврата содержания Описания.

Вы попытались просто связать с Value1. Описание? (Я предполагаю, что это не работает).

У меня есть класс, который может использоваться вместо Списка при привязке, который обработает это, он реализует ITypedList, который позволяет набору обеспечивать больше "свойств" для своих объектов, включая расчетные свойства.

Последняя версия файлов, которые я имею, здесь:

https://gist.github.com/lassevk/64ecea836116882a5d59b0f235858044

Использовать:

List<rootClass> yourList = ...
TypedListWrapper<rootClass> bindableList = new TypedListWrapper<rootClass>(yourList);
bindableList.BindableProperties = "Value1;Value2.Description;Value3.Description";
gridView1.DataSource = bindableList;

В основном Вы связываете с экземпляром TypedList<T> вместо List<T>, и скорректируйте свойство BindableProperties. У меня есть некоторые изменения в работе, включая ту, которая просто создает BindableProperties автоматически, когда это идет, но это еще не находится в соединительной линии.

Можно также добавить вычисленные свойства, как это:

yourList.AddCalculatedProperty<Int32>("DescriptionLength",
    delegate(rootClass rc)
    {
        return rc.Value2.Description.Length;
    });

или с.NET 3.5:

yourList.AddCalculatedProperty<Int32>("DescriptionLength",
    rc => rc.Value2.Description.Length);
9
ответ дан 5 December 2019 в 07:37
поделиться

Так как Вы упоминаете DataGridViewColumn (теги), я предполагаю, что Вы имеете в виду winforms.

Доступ к подсвойствам является болью; менеджер валюты связывается со списком, таким образом, у Вас только есть доступ к непосредственным свойствам по умолчанию; однако, можно закончить это, если Вам абсолютно нужно при помощи пользовательского дескриптора типа. Необходимо было бы использовать другой маркер также, как "Foo_Bar" вместо "Нечто. Панель". Однако это - главный объем работы, который требует знания PropertyDescriptor, ICustomTypeDescriptor и вероятно TypeDescriptionProvider, и почти наверняка не стоит того,

Самая простая фиксация должна выставить свойство как контейнер / передача - через:

public string Value2Description {
    get {return Value2.Description;} // maybe a null check too
}

Затем свяжите с "Value2Description" и т.д.

9
ответ дан 5 December 2019 в 07:37
поделиться

Я не уверен, используете ли Вы ASP.NET, но если да, то можно использовать шаблонный столбец и Оценку () метод для отображения значений вложенных объектов. Например, отобразить свойство Description подобъекта:

<asp:GridView ID="grid" runat="server" AutoGenerateColumns="true">
  <Columns>
    <asp:TemplateField>
      <ItemTemplate>
        <asp:Literal Text='<%# Eval("Value2.Description") %>' runat="server" />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>
3
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: