创建用于列表框的动态字符串数组

本文关键字:动态 字符串 数组 用于 列表 创建 | 更新日期: 2023-09-27 18:08:19

我有一个数据网格,它是可变的行数,而我的应用程序是由用户编辑。我需要创建一个列表框,它将列出包含变量数据网格的一列的字符串,无论长度如何。

我在这方面遇到了麻烦,需要一种简单的方法将列内容转换为字符串数组。然后使用该数组动态填充列表框。

最近有人成功做到了吗?

Visual Studio 2010 c#

创建用于列表框的动态字符串数组

您使用数组而不是列表的原因是什么?

你唯一的选择是像下面的

string x[];
for(int I=0; I < rows.count; I++) {
    x.push(rows[I].column["ColumnA"].toString());
}

基本上你声明一个空数组,然后每次你需要使用Push方法时增加1。

不使用数组,而是使用字符串列表:

public IEnumerable<Microsoft.Windows.Controls.DataGridRow> GetDataGridRows(Microsoft.Windows.Controls.DataGrid grid)
{
    var itemsSource = grid.ItemsSource as IEnumerable;
    if (null == itemsSource) yield return null;
    foreach (var item in itemsSource)
    {
        var row = grid.ItemContainerGenerator.ContainerFromItem(item) as Microsoft.Windows.Controls.DataGridRow;
        if (null != row) yield return row;
    }
}
var rows= GetDataGridRows(grid); 
foreach (DataGridRow r in rows)  
{  
    DataRowView rv = (DataRowView)r.Item;
    foreach (DataGridColumn column in grid.Columns)
    {
    }
 } 

试试这个,希望它能正常工作:

 DataTable dt=new DataTable();
        dt.Columns.Add("Name");
        dt.Columns.Add("ph_NO");
        dt.Rows.Add(new object[] { "sonu", 213123 });
        dt.Rows.Add(new object[] { "abhay", 123411});
        dt.Rows.Add(new object[] { "John", 234123 });
        dataGridView1.DataSource = dt;            
       listBox1.DataBindings.Add(new Binding("DataSource", dataGridView1,"DataSource"));
       listBox1.DisplayMember = "Name";