将列表数据绑定到GridView。 GridView找不到我的财产!

| 鉴于: 我有一堂课:
class MyObject
{
  public string Field1;
  public string Field2;
}
和以下代码:
var list = SomeFunction(); // returns a valid List<MyObject>
gvMyList.DataSource = list;
gvMyList.DataBind(); // THIS THROWS AN EXCEPTION
在aspx页面中还有一个GridView控件:
<asp:GridView ID=\"gvMyList\" AutoGenerateColumns=\"false\" runat=\"server\">
  <Columns>
    <asp:TemplateField HeaderText=\"Field 1\">
      <ItemTemplate>
        <asp:Label ID=\"lblCourse\" runat=\"server\" Text=\'<%# Eval(\"Field1\") + \" \" + Eval(\"Field2\") %>\'></asp:Label>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>
问题: 所以我知道,如果某个东西实现了
IEnumerable
,那么它可以传递给
DataSource
属性。据我所知,如果您向列表传递
DataSource
,那么我应该可以使用
Eval(\"Field1\")
或to8ѭ访问
MyObject
的属性。事实并非如此。相反,我抛出了一个异常:
DataBinding: \'MyObject\' does not contain a property with the name \'Field1\'.
    
已邀请:
您的课程包含字段,而不是属性;您必须通过以下方式定义属性:
 class MyObject
    {
      public string Field1 { get; set; }
      public string Field2 { get; set; }
    }
    

要回复问题请先登录注册