2011-09-17 13 views
5

Per la vita di me, non riesco a ottenere il Databinding per Dynamics o ExpandoObjects funzionante.L'associazione dati dinamici e ExpandoObjects funzionano in .NET

Ho provato questo in WinForms e WebForms e ottenere risultati diversi in ciascuna:

In 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(); 

    } 

Questo si traduce in:

DataBinding: 'sistema. Dynamic.ExpandoObject 'non contiene una proprietà con il nome' Nome '.

In WinForms, ho un problema diverso:

 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"; 

Il risultato è la visualizzazione ComboBox "System.Dynamic.ExpandoObject" - come viene semplicemente chiamando ToString() sui due elementi della collezione . :(

Apprezzo l'aiuto!

+1

Non posso parlare a quei API, associazione dati dinamico funziona in WPF però. – jbtule

+1

Hai visto questa domanda [Come DataBind una griglia su un ExpandoObject] (http://stackoverflow.com/questions/4740969/how-to-databind-a-gridview-to-an-expandoobject) e [this] (http://stackoverflow.com/questions/ 1653046/what-are-the-true-benefits-of-expandoobject/1653069 # 1653069) rispondere a una domanda diversa? – R0MANARMY

+0

Non ricevo errori ma nelle app di Windows Store, il valore iniziale letto va bene ma la successiva notifica di modifica non sembra funzionare. –

risposta

0

Prova questa

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