Data binding 到dynamics和ExpandoObjects的数据绑定在.NET中工作吗

Data binding 到dynamics和ExpandoObjects的数据绑定在.NET中工作吗,data-binding,expandoobject,Data Binding,Expandoobject,就我的一生而言,我似乎无法将数据绑定到动态或扩展对象 我曾在WinForms和WebForms中尝试过这一点,但每次都得到了不同的结果: 在ASP.NET中: <asp:DropDownList ID="DropDownList1" runat="server"> </asp:DropDownList> protected void Page_Load(object sender, EventArgs e) { dynamic conta

就我的一生而言,我似乎无法将数据绑定到动态或扩展对象

我曾在WinForms和WebForms中尝试过这一点,但每次都得到了不同的结果:

在ASP.NET中:

<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>

    protected void Page_Load(object sender, EventArgs e)
    {
        dynamic contacts = new List<dynamic>();

        contacts.Add(new ExpandoObject());
        contacts[0].Name = "Patrick Hines";
        contacts[0].Phone = "206-555-0144";

        contacts.Add(new ExpandoObject());
        contacts[1].Name = "Ellen Adams";
        contacts[1].Phone = "206-555-0155";


        DropDownList1.DataSource = contacts;
        DropDownList1.DataTextField = "Name";
        DropDownList1.DataBind();

    }

受保护的无效页面加载(对象发送方、事件参数e)
{
动态联系人=新列表();
contacts.Add(新的expandooobject());
联系人[0]。Name=“Patrick Hines”;
联系人[0]。电话=“206-555-0144”;
contacts.Add(新的expandooobject());
联系人[1]。姓名=“艾伦·亚当斯”;
联系人[1]。电话=“206-555-0155”;
DropDownList1.DataSource=联系人;
DropDownList1.DataTextField=“Name”;
DropDownList1.DataBind();
}
这导致:

数据绑定:“System.Dynamic.ExpandoObject”不包含名为“name”的属性。

在WinForms中,我有一个不同的问题:

        dynamic contacts = new List<dynamic>();

        contacts.Add(new ExpandoObject());
        contacts[0].Name = "Patrick Hines";
        contacts[0].Phone = "206-555-0144";

        contacts.Add(new ExpandoObject());
        contacts[1].Name = "Ellen Adams";
        contacts[1].Phone = "206-555-0155";

        this.departmentList.DataSource = contacts;
        this.departmentList.DisplayMember = "Name";
dynamic contacts=new List();
contacts.Add(新的expandooobject());
联系人[0]。Name=“Patrick Hines”;
联系人[0]。电话=“206-555-0144”;
contacts.Add(新的expandooobject());
联系人[1]。姓名=“艾伦·亚当斯”;
联系人[1]。电话=“206-555-0155”;
this.departmentList.DataSource=联系人;
this.departmentList.DisplayMember=“Name”;
这导致组合框显示“System.Dynamic.ExpandoObject”-因为它只是对集合中的两个项调用ToString()(

谢谢你的帮助!

试试这个

var contacts = new List<dynamic>()
{
    new {Name = "Patrick Hines",Phone = "206-555-0144"},
    new {Name = "Ellen Adams",Phone = "206-555-0155"}
};
var contacts=新列表()
{
新{Name=“Patrick Hines”,Phone=“206-555-0144”},
新{Name=“Ellen Adams”,Phone=“206-555-0155”}
};

我无法与这些api对话,但动态数据绑定在WPF中确实有效。您是否看到了此问题以及其他问题的答案?我没有发现错误,但在Windows应用商店应用程序中,读取的初始值很好,但随后的更改通知似乎不起作用。