数据绑定:';System.Web.UI.Pair';不包含名为';第一个';

本文关键字:包含名 第一个 Pair Web System 数据绑定 UI | 更新日期: 2023-09-27 18:15:32

我正在将一个对列表数据绑定到一个下拉列表,由于某种原因,它不起作用,我很感兴趣。

我使用的代码是:

public void BindDropDown(List<Pair> dataList)
{
    ddlGraphType.DataTextField = "First";
    ddlGraphType.DataValueField = "Second";
    ddlGraphType.DataSource = dataList;
    ddlGraphType.DataBind();
}

我得到了这个例外,这是一个谎言!

DataBinding: 'System.Web.UI.Pair' does not contain a property with the name 'First'.

提前谢谢。

添加

我知道异常的含义,但pair对象确实包含First和Second属性,这就是问题所在。

数据绑定:';System.Web.UI.Pair';不包含名为';第一个';

FirstSecond是字段,而不是Pair类型的属性。您需要创建一个具有两个属性的类:

 public class NewPair
 {
    public string First { get; set; }
    public string Second { get; set; }
 }

编辑:Tuple的使用:由@Damien_The_Unbeliever&Chris Chilvers

List<Tuple<string, string>> list = new List<Tuple<string, string>>()
 {
   new Tuple<string,string>("One","1"),
   new Tuple<string,string>("Two","2"),
};
ddlGraphType.DataTextField = "Item1";
ddlGraphType.DataValueField = "Item2";
ddlGraphType.DataSource = list;
ddlGraphType.DataBind();

这意味着目标属性必须是依赖属性。这也意味着您不能绑定字段和Pair。首先是字段not属性

public sealed class Pair
{
}

字段:

Public field    First   Gets or sets the first object of the object pair.
Public field    Second  Gets or sets the second object of the object pair.

请参阅MSDN。

可能您在声明属性后忘记了{get; set;}

public class A
{
  //This is not a property
  public string Str;
 //This is a property
  public string Str2 {get; set;}
}
相关文章: