2011-09-17 31 views
5

对于我来说,我似乎无法将数据绑定到Dynamics或ExpandoObjects工作。数据绑定动态和扩展对象在.NET中工作

我在的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(); 

    } 

这导致:

数据绑定:“系统。 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"; 

这将导致显示“System.Dynamic.ExpandoObject”组合框 - 因为它只是在集合中的两个项目调用toString() 。 :(

我欣赏的帮助!

+1

我不能给这些API的说话,动态绑定不会在WPF工作虽然。 – jbtule

+1

你见过这个问题[如何进行数据绑定GridView到ExpandoObject](http://stackoverflow.com/questions/4740969/how-to-databind-a-gridview-to-an-expandoobject)和[this](http://stackoverflow.com/questions/) 1653046 /这是什么真正的好处-exampleoobject/1653069#1653069)回答不同的问题? – R0MANARMY

+0

我没有得到错误,但在Windows应用商店的应用程序中,读取的初始值很好,但是随后的更改通知似乎不起作用。 –

回答

0

试试这个

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