创建用于列表框的动态字符串数组
本文关键字:动态 字符串 数组 用于 列表 创建 | 更新日期: 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";