我正在尝试将列表绑定到gridview
。情况是这样的:我从.txt文件中获取数据,稍后我将其放在第一个列表List<Mycolumns>
中。我创建了列表中的数据(有3个独立的列)。我从其中一个名为System_Description
的列中获取数据。现在我想在gridview
中显示这些数据,但我得到的只是每行的长度。我该如何解决?这是我的代码。
private void button7_Click(object sender, EventArgs e)
{
List<MyColumns> list = new List<MyColumns>();
OpenFileDialog openFile1 = new OpenFileDialog();
openFile1.Multiselect = true;
if (openFile1.ShowDialog() != DialogResult.Cancel)
{
foreach (string filename in openFile1.FileNames)
{
using (StreamReader sr = new StreamReader(filename))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] _columns = line.Split(",".ToCharArray());
MyColumns mc = new MyColumns();
mc.Time = _columns[0];
mc.System_Description = _columns[1];
mc.User_Description = _columns[2];
list.Add(mc);
}
}
}
DataTable ListAsDataTable = BuildDataTable<MyColumns>(list);
DataView ListAsDataView = ListAsDataTable.DefaultView;
this.dataGridView1.DataSource = view = ListAsDataView;
this.dataGridView1.AllowUserToAddRows = false;
dataGridView1.ClearSelection();
}
List<string> description = list.Select(x => x.System_Description).ToList<string>();
this.dataGridView2.DataSource = description;
}
class MyColumns
{
public string Time { get; set; }
public string System_Description { get; set; }
public string User_Description { get; set; }
}
编辑:
我读过DataBind()
适用于网络表单,我的应用是桌面应用。我现在该怎么办?
答案 0 :(得分:1)
this.dataGridView1.DataSource = new BindingSource(list);
答案 1 :(得分:1)
我设法解决了这个问题。我是这样做的,也许它会帮助别人。您可以使用DataTable然后将DT绑定到gridview。
DataTable dt = new DataTable();
dt.Columns.Add("values");
foreach(string items in description)
{
DataRow row = dt.NewRow();
dt.Rows.Add(items);
}
this.dataGridView2.DataSource = dt;
答案 2 :(得分:0)
您只使用以下语句选择System_Description
字段:
List<string> description = list.Select(x => x.System_Description).ToList<string>();
然后,您将此列表绑定到gridview:
this.dataGridView2.DataSource = description;
如果要将整个数据绑定到gridview
;只需将列表绑定为数据源。
this.dataGridView2.DataSource = list;
this.dataGridView2.DataBind();
答案 3 :(得分:-1)
使用此
this.dataGridView1.DataSource = description;
并在aspx上的gridview中添加Bound字段。
<asp:BoundField DataField="System_Description" HeaderText="System_Description"></asp:BoundField>