将非属性绑定到数据网格列 DataField?

Posted

技术标签:

【中文标题】将非属性绑定到数据网格列 DataField?【英文标题】:Bind non-property to datagrid column DataField? 【发布时间】:2011-07-27 03:28:52 【问题描述】:

假设我有一个看起来像这样的 DataGrid:

<asp:DataGrid ID="SomeDataGrid" runat="server">
    <Columns>
        <asp:BoundColumn HeaderText="A Header" SortExpression="Sort" DataField="Data"></asp:BoundColumn>
    </Columns>
</asp:DataGrid>

在此网格中,我将数据源设置为包含名为“Data”的公共属性的某个集合,并执行databind()。一切都按预期工作。

现在假设我想将列的 DataField 属性设置为公共成员、属性或其他我计算过的东西。在不创建中间对象或向集合中的对象添加公共属性的情况下,最简单的方法是什么?

所以我想做的是:

<asp:BoundColumn HeaderText="A Header" SortExpression="Sort" DataField="someMethod()"></asp:BoundColumn>

【问题讨论】:

【参考方案1】:

使用TemplateColumn

<asp:TemplateColumn HeaderText="Test">
<ItemTemplate>
<asp:Label runat="server" Text='<%# SomeMethod() %>'></asp:Label>  
</ItemTemplate>
</asp:TemplateColumn>

【讨论】:

以上是关于将非属性绑定到数据网格列 DataField?的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF 中,如何将数据网格列绑定到数据表的特定列?

WPF XAML - 将数据网格列绑定到外键(数据集)

使用复选框列修复数据网格视图中的 FormatException

如何将 Telerik 网格列绑定到作为列表的子数据对象?

将列表绑定到包含复选框列的数据网格视图

数据网格行背景颜色绑定到数据源集合中单个项目的属性