首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ComboBox List<object> ==>始终显示相同的object.name (多次)

C# ComboBox List<object> ==>始终显示相同的object.name (多次)
EN

Stack Overflow用户
提问于 2014-08-04 04:48:25
回答 2查看 218关注 0票数 0

我只想让我的ComboBox向我展示

列表中对象的FullName (策展人),

但它会多次显示相同的"object.FullName“:-(

-

基本上,它工作原因是它向我显示了其中一个策展人的FullName,

好的时候,

但是它向我展示了同样的东西!

代码语言:javascript
复制
public partial class SGIArt : Form
{
     public static Gallery gal = new Gallery(); // from a dll i made

     List<Curator> curList = new List<Curator>();

     public SGIArt()
     {
        InitializeComponent();
        comboCur.DataSource = curList;
        comboCur.ValueMember = null;
        comboCur.DisplayMember = "FullName";
        UpdateCurList();
    }
    public void UpdateCurList()
    {
        curList.Clear();
        foreach (Curator cur in gal.GetCurList())    
                  // from the same dll : Curators curatorsList = new Curators();
        {
            curList.Add(cur);
        }
    }
    private void comboCur_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboCur.SelectedValue != null)
        {
            //show info in textBox (that work fine)
        }
    }
}

策展人类:

代码语言:javascript
复制
public class Curator : Person
{

    private int id;
    private double commission;
    const double commRate = 0.25;
    private int assignedArtists = 0;

    public int CuratorID
    {
        get
        {
            return id;
        }
        set
        {
            id = value;
        }
    }
    ...

    public Curator()
    {
    }

    public Curator(string First, string Last, int curID)
        : base(First, Last) // from : public abstract class Person
    {
        id = curID;
        commission = 0;
        assignedArtists = 0;
    }
EN

回答 2

Stack Overflow用户

发布于 2014-08-04 05:07:03

编辑:您可能正在寻找this答案。

我在您的代码片段中没有看到FullName成员。我想你要找的东西是这样的:

代码语言:javascript
复制
List<Curator> curList = new List<Curator>();

public SGIArt()
{
  InitializeComponent();
  comboCur.DataSource = datasource;
  comboCur.ValueMember = null;
  comboCur.DisplayMember = "FullName";
  UpdateCurList();
}
List<string> datasource()
{
  List<string> datasource = new List<string>();
  foreach(Curator curator in  curList)
  {
    datasource.Add(curator.FullName)//this assume FullName is an accesible member of the Curator class and is a string.
  }
  return datasource;
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-04 17:30:55

comboBox向您显示object.FullName,因为这就是您告诉它的内容。绑定curList时,它是空的。

您可以在使用列表之前更新列表:

代码语言:javascript
复制
public SGIArt()
{
    InitializeComponent();
    UpdateCurList();
    comboCur.DataSource = curList;
    comboCur.ValueMember = null;
    comboCur.DisplayMember = "FullName";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25108953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档