datagridview中的数据不显示为C#?
我有一个字符串列表,如下所示:datagridview中的数据不显示为C#?,c#,datagridview,C#,Datagridview,我有一个字符串列表,如下所示: firstname midname lastname aa bbb ccc bb lijb hjhk 我想在datagridview中显示。下面是我的代码: internal void add_names() { userInterface ui = new userInterface(); List_namez names = n
firstname midname lastname
aa bbb ccc
bb lijb hjhk
我想在datagridview中显示。下面是我的代码:
internal void add_names()
{
userInterface ui = new userInterface();
List_namez names = new List_namez();
ui.lname.DataSource = names.getnames().ToList();
ui.ShowDialog();
}
我不知道为什么在执行上述代码时我的列表没有显示。然而,当我试图调试代码时,我发现ui.lname.DataSource中有数据。但它在datagridview中显示空行。有什么建议可以解决这个问题吗
谢谢。取决于你对名字的定义。让我举个例子:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public override string ToString( )
{
return "Person, name=" + FirstName + " Surname=" + LastName;
}
}
...
public Form1( )
{
InitializeComponent( );
dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler( dataGridView1_RowsAdded );
dataGridView1.DataSource = new Person[]{ new Person{ FirstName= "Jarek", LastName= "Mitek"},
new Person{ FirstName= "Tony", LastName= "Montana"}};
}
void dataGridView1_RowsAdded( object sender, DataGridViewRowsAddedEventArgs e )
{
Console.WriteLine( "Rows added count: " + e.RowCount + " row index: " +e.RowIndex );
Console.WriteLine( dataGridView1.Rows[ e.RowIndex ].DataBoundItem.ToString( ) );
}
这将生成两个columsn,每个列的名称都是Person类中的属性名称。这是最简单的方法。
当数据被添加到集合中时,您将得到显示您的调试行。
这有帮助吗?在设置数据源后,似乎缺少了一个
DataBind()
调用。如果列不是自动生成的,则必须针对相应的列指定DataProperty名称