【问题标题】:How to add different datasource to two different colums in c#如何在c#中将不同的数据源添加到两个不同的列
【发布时间】:2014-01-10 05:35:55
【问题描述】:

我有一个 ListView,我在其中添加了两列。一列很简单,一列有 Free 3 of 9 Font,因为我想将第一列的值转换为 BarCode,然后将它们显示到第二列。我想在列表的帮助下填充 ListView 的数据源。 现在我的问题是如何设置 ListView 单列的数据源,因为我必须将该列的值转换为 BarCode,然后将其显示在其他列中。

我现在只设置整个 ListView 的数据源,因为我在此之后添加了列。

我的代码如下我正在尝试做的事情

      private void GenerateButton_Click(object sender, EventArgs e)
      {
         List<string> SerialNumberList = new List<string>();
         int SerialNumberStart = Convert.ToInt32(Regex.Replace(StartSerialBox.Text, "[^0-9]+", string.Empty));

         int SerialLimit = Convert.ToInt32(LimitBox.Text);
         for (int i = 0; i < SerialLimit;i++ )
         {
           SerialNumberStart++;
           SerialNumberList.Add("S" + SerialNumberStart);
         }
        for (int j = 0; j < SerialNumberList.Count;j++ )
        {

            Adapter.insertserialnumbers(SerialNumberList[j], DateTime.Now.ToString());

        }
         radListView1.DataSource = SerialNumberList;
       }

我希望两列都应该有单独的列表作为数据源,并且只有第二列的字体应该更改。

【问题讨论】:

  • 您到底使用什么列表视图?我对radListView1 的名字感到困惑。如果你的意思是 WinFormsListView,那么它是一个不好的数据绑定选择。
  • 我正在使用 Rad 控件中的 ListView。我尝试对 DataGridView 做同样的事情,但我无法将 DataGridView 的数据源与 List 绑定。如果您有任何想法,那么您也可以指导我应该使用哪个,然后如何将任一控件的数据源与列表绑定
  • 简单来说,我想显示两列,其数据源应该是一个单独的列表。第一列的字体很简单,但另一列的字体将是 Free 3 of 9 (BarCode)
  • 老实说,我无法理解,为什么需要单独的列表。这些列表将包含不同的数据?
  • 不,我正在使用单个列表,并希望将该列表 分配给两列。

标签: c# listview datasource


【解决方案1】:

这是DataGridView 的示例:

    private void Form1_Load(object sender, EventArgs e)
    {
        var dataGridView = new DataGridView
        {
            AutoGenerateColumns = false,
            DataSource = new List<string>
            {
                "Red",
                "Green",
                "Blue"
            }
            .Select(s => Tuple.Create(s))
            .ToList()
        };

        var columnA = new DataGridViewTextBoxColumn
        {
            HeaderText = "Column A",
            DataPropertyName = "Item1"
        };

        var columnB = new DataGridViewTextBoxColumn
        {
            HeaderText = "Column B",
            DataPropertyName = "Item1",
        };

        columnB.DefaultCellStyle.Font = new System.Drawing.Font("Times New Roman", 14);

        dataGridView.Columns.Add(columnA);
        dataGridView.Columns.Add(columnB);

        Controls.Add(dataGridView);
    }

DGV 不能直接绑定到字符串列表,因为特定列的数据绑定需要绑定到的数据属性名称。所以,我在这里使用了一个包装器(Tuple&lt;string&gt;)。

这是你想要的吗?

附:当然,您也可以使用设计器。该示例在代码中创建 DGV 以显示正在发生的事情。

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多