C# 如何在gridview或任何usful控件中显示对象

C# 如何在gridview或任何usful控件中显示对象,c#,asp.net,linq,C#,Asp.net,Linq,我有一个类,在这个类中我有两个类,如何将这个类绑定到网格视图以显示内部类的属性 这是我的密码 public class EventDetail { private static Data.Data.BatisEntities Batis_CmsDb = new Data.Data.BatisEntities(); private Int64 logID; public Int64 LogID { get { return logID; }

我有一个类,在这个类中我有两个类,如何将这个类绑定到网格视图以显示内部类的属性

这是我的密码

public class EventDetail
 {
    private static Data.Data.BatisEntities Batis_CmsDb = new Data.Data.BatisEntities();
    private Int64 logID;

    public Int64 LogID
    {
        get { return logID; }
        set { logID = value; }
    }
    private object logedObject;

    public object LogedObject
    {
        get { return logedObject; }
        set { logedObject = value; }
    }

    /// <summary>
    /// show detailed information for an selected log
    /// </summary>
    /// <param name="_LogId"></param>
    /// <returns></returns>
    public static List<Modules.EventLog.Wraper.EventDetail.EventDetail> Show_DetailLog(Int64 _LogId)
    {
        string _XmlObjBefor, _XmlObjAfter, _strObjectType;
        var _SelectedLLogDetail = (from e in Batis_CmsDb.Eventlog_Detial
                                   where e.LogID == _LogId
                                   select e).First();
        //get the string object to desrialize;
        _XmlObjBefor = _SelectedLLogDetail.BEFOR_OBJECT;
        _XmlObjAfter = _SelectedLLogDetail.AFTER_OBJECT;
        _strObjectType = _SelectedLLogDetail.OBJECT_TYPE;

        //now create an instanse of type;
        Type ObjectType = Type.GetType(_strObjectType);
        object _objbefor = Activator.CreateInstance(ObjectType);

        object _objAfter = Activator.CreateInstance(ObjectType);
        //get the type of new object to send xml serilizer
        Type _ObjectType = _objbefor.GetType();

        //Deserilize object
        _objbefor = Convertor.XmlDesrialize.XmlDesrializer.DesrializeAnyObject(_XmlObjBefor, _ObjectType);
        _objAfter = Convertor.XmlDesrialize.XmlDesrializer.DesrializeAnyObject(_XmlObjAfter, _ObjectType);

        List<Modules.EventLog.Wraper.EventDetail.EventDetail> lstLog = new List<Modules.EventLog.Wraper.EventDetail.EventDetail>();

        Modules.EventLog.Wraper.EventDetail.EventDetail _EventDetailBefor = new Modules.EventLog.Wraper.EventDetail.EventDetail();
        Modules.EventLog.Wraper.EventDetail.EventDetail _EventDetailAfter = new Modules.EventLog.Wraper.EventDetail.EventDetail();
        _EventDetailAfter.LogedObject = _objAfter;
        _EventDetailBefor.LogedObject = _objbefor;
        _EventDetailBefor.LogID = _LogId;
        _EventDetailAfter.LogID = _LogId;

        lstLog.Add(_EventDetailBefor);
        lstLog.Add(_EventDetailAfter);

        return lstLog;
    }


}
在aspx.cs中

protected void Page_Load(object sender, EventArgs e)
{
    List<TestOne> testOneItems = new List<TestOne>();
    TestOne testOne = new TestOne { TestProperty = new TestOne.TestInner { TestInnerProperty = "test Inner Property" }};
    testOneItems.Add(testOne);

    GridView1.DataSource = testOneItems;
    GridView1.DataBind();
}

为什么局部变量使用下划线,命名约定不一致?您的代码不可读。tanx但我不知道内部类的类型和属性是什么。我们是否在运行时创建templete字段
   <asp:GridView ID='GridView1' runat='server' AutoGenerateColumns="false"        >
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID='Label1' runat='server' Text ='<%# Bind("TestProperty.TestInnerProperty")  %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
public class TestOne
{
    public TestOne()
    {
    }

    public TestInner TestProperty
    {
        get;
        set;
    }

    public class TestInner
    {

        public String TestInnerProperty
        {
            get;
            set;
        }
    }
}