2

例如,我有以下类声明的一个实例:

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!

年龄总是存在的。我无法控制 person 类。有谁知道我想做的事情是否可以实现?

谢谢!

4

2 回答 2

1

据我所知,你不能那样做。

我想我会去:

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

但我不确定这是你问题的重点。

于 2013-02-12T16:29:36.130 回答
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 中完成。

于 2013-02-12T16:25:15.720 回答