【问题标题】:WinForms C# Adding list to class ObjectWinForms C#将列表添加到类对象
【发布时间】:2020-08-10 05:49:19
【问题描述】:
  public class Wholesale
{
    public int Id { get; set; }
    public string WholesalerName { get; set; }
    public string CompanyName { get; set; }
    public string Email { get; set; }
    public List<string> PhoneNumber { get; set; }
    public Wholesale()
    {
        this.PhoneNumber = new List<string>();
    }
}

我有一门需要电话号码列表的课程。

   List<string> s = new List<string>();
        s.Add("22");
        
        wholesale = new List<Wholesale>() { 
        new Wholesale {CompanyName = "Test", WholesalerName = "Test", PhoneNumber = s, Email = "Test@gmail.com"};

与 DatagridView 的数据源绑定。

var bindingList = new BindingList<Wholesale>(wholesale);
                    var source = new BindingSource(bindingList, null);
                    dataGridViewAlbany.DataSource = source;
                    dataGridViewAlbany.Columns[0].Visible = false;
                    dataGridViewAlbany.Columns[1].HeaderText = "Company";
                    dataGridViewAlbany.Columns[2].HeaderText = "Customer";
                    dataGridViewAlbany.Columns[3].HeaderText = "Email";
                   dataGridViewAlbany.Columns[4].HeaderText = "Phone";
                    dataGridViewAlbany.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dataGridViewAlbany.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dataGridViewAlbany.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
                    dataGridViewAlbany.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
                    foreach (DataGridViewColumn column in dataGridViewAlbany.Columns)
                    {
                        column.SortMode = DataGridViewColumnSortMode.NotSortable;
                    }

错误:

  dataGridViewAlbany.Columns[4].HeaderText = "Phone";

System.ArgumentOutOfRangeException

如何添加电话号码列表?

【问题讨论】:

  • 您需要确保您的dataGridViewAlbany 至少有5 列。您使用的是手动定义的列还是自动生成的列?
  • 您好,感谢您的及时回复。我使用绑定源/列表自动生成它们。
  • 您如何设想将电话号码列表显示在单个列中?以某种方式堆叠成一列,还是以逗号分隔的列表?

标签: c# list winforms class object


【解决方案1】:

您可以为电话号码文本添加新属性,例如像逗号分隔的字符串:

public class Wholesale

    public List<string> PhoneNumber { get; set; }

    public string PhoneNumberAsText => string.Join(",", PhoneNumber);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    相关资源
    最近更新 更多