2013-07-09 63 views
1

我在Visual Studio 2010中使用C#。我有2个组合框从数据库中提取数据。代码看起来像这样:'无法绑定到新值成员。参数名称:newDisplayMember'。

 cbo1.DisplayMember = "Name"; 
     cbo1.ValueMember = "HROfficeLocationID"; 
     cbo1.DataSource = offices; 
     cbo2.DisplayMember = "Name"; 
     cbo2.ValueMember = "HROfficeLocationID"; 
     cbo2.DataSource = offices; 

我不断收到此异常:'无法绑定到新值成员。参数名称:newDisplayMember'。我四处搜寻,然后重组的代码行,使cbo.DataSource来之前.DisplayMember和.ValueMember。它结束了看起来像这样:

 cbo1.DataSource = offices; 
     cbo1.DisplayMember = "Name"; 
     cbo1.ValueMember = "HROfficeLocationID"; 
     cbo2.DataSource = offices; 
     cbo2.DisplayMember = "Name"; 
     cbo2.ValueMember = "HROfficeLocationID"; 

异常走。只是想我会分享。

回答

3

我时,我用的是内部类有varialbles“内部”发生这种情况。改变他们为“公共”,它工作得很好。

0

一些属性的属性也导致此错误像[可浏览(假)]

1

指定为一个属性,而不是作为在例如一个类的变量,

public class projectData 
{ 
    public string ProjName { get; set; } 
    public string ProjId { get; set; } 
} 


List<projectData> projects = getProjects(); 


lBoxFDTProjects.DataSource = projects; 

lBoxFDTProjects.ValueMember = "ProjId"; 
lBoxFDTProjects.DisplayMember = "ProjName"; 
0
public class CmbStringItem 
{ 

    public CmbStringItem(string text, string val) 
    { 
     Text = text; 
     Value = val; 
    } 

    private string text; 

    public string Text 
    { 
     get {return text;} 
     set {text = value;} 
    } 
    private string val; 

    [System.ComponentModel.BrowsableAttribute(true)] // must use 
    public string Value 
    { 
     get {return val;} 
     set {val = value;} 
    } 

    public override string ToString() 
    { 
     return Text; 
    } 
} 

 List<CmbStringItem> items = new List<CmbStringItem>(); 
     items.Add(new CmbStringItem("Onula", "0")); 
     items.Add(new CmbStringItem("Jedna", "1")); 
     items.Add(new CmbStringItem("Dva", "2")); 
     items.Add(new CmbStringItem("Tri", "3")); 

     this.cmbSklad.DataSource = items; 

     this.cmbSklad.ValueMember = "Value"; 
     this.cmbSklad.DisplayMember = "Text"; 
     this.cmbSklad.SelectedIndex = 0; 

//设置Chombobox - 显示vlaue

cmbSklad.SelectedValue = “1”;

相关问题