2011-09-17 19 views
5

'da çalışıyor mu? Yaşamımın devam etmesi için, Dynamics veya ExpandoObjects uygulamasına Databinding özelliğini alamıyorum. HerDinamiklere ve ExpandoObjects'a veri bağları .NET

Ben WinForms ve WebForms bu denenmiş ve elde var farklı sonuçlar:

ASP.NET'te

:

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

    } 

Bu sonuçlanır:

DataBinding: 'Sistemi. Dynamic.ExpandoObject ',' Name 'adıyla bir özellik içermiyor. WinForms ise

, farklı bir sorun var:

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

Bu "System.Dynamic.ExpandoObject" görüntüleniyor ComboBox sonuçlanır - sadece koleksiyonunda iki öğeler üzerinde ToString() çağırıyor olarak . :(

yardıma teşekkür ederiz!

+1

bu, Dinamik veri bağlama WPF çalışır deneyin gerçi. – jbtule

+1

Nasıl databind bu soruyu [gördünüz mü ExpandoObject için bir ızgara görünümü] (http://stackoverflow.com/questions/4740969/how-to-databind-a-gridview-to-an-expandoobject) ve [bu] (http://stackoverflow.com/questions/ 1653046/what-are-the-true-benefits-of-expandoobject/1653069 # 1653069) farklı bir soruya cevap? – R0MANARMY

+0

Hata almıyorum ama Windows Mağazası uygulamalarında, başlangıç ​​değeri iyi ama sonraki değişiklik bildirimi işe yaramıyor. –

cevap

0

O API giden tarihiyle konuşamıyor

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