2013-02-12 86 views
2

例如,我有下面的類聲明的實例:您可以將包含Dictionary屬性的對象綁定到下拉列表嗎?

public class Person 
{ 
    public string Name = ""; 
    public Dictionary<string, string> Properties = new Dictionary<string, string>(); 
} 

我有,我想綁定到一個Asp.NET下拉列表中的人的名單。

List<Person> people = new List<Person>(); 
//fill the list etc.. 

//bind to the drop down list 
ddlPeople.DataSource = people; 
ddlPeople.DataTextField = "Name"; 
ddlPeople.DataTextField = "Properties['Age']"; //this is what I would like! 

年齡總是存在。我無法控制人員課程。有誰知道我想要做的是可以實現的嗎?

謝謝!

回答

1

據我所知,你不能那樣做。

我想我會去的:

ddlPeople.Items.Clear(); 
ddlPeople.Items.AddRange(people.Select(p => new ListItem(p.Name, p.Properties["Age"])).ToArray()); 

但我不知道這是你的問題的地步。

0

也許你可以在你的人類上創建一個只讀屬性?

public class Person 
{ 
    public string Name = ""; 
    public Dictionary<string, string> Properties = new Dictionary<string, string>(); 

    public int Age 
    { 
     get 
     { 
      // ... code to handle situations where Properties 
      //  is null or does not contain key 
      return (int)this.Properties["Age"]; 
     } 
    } 
} 

我相信那種結合你正在尋找有可能在WPF,但我不認爲我見過它在ASP.NET完成。

相關問題