C# 来自SQL Server的WPF C Datagrid更新列

C# 来自SQL Server的WPF C Datagrid更新列,c#,sql-server,wpf,datagrid,C#,Sql Server,Wpf,Datagrid,我想将数据从SQLManagementStudio获取到datagrid,但它不起作用。 首先我有一节课: 人 在那里我得到了第一个名字和第二个名字 class Person { public string firstName { get; set; } public string secondName { get; set; } } 我已经创建了一个按钮,用于连接数据库,使用select查询并刷新数据库 string dbConnectionString =

我想将数据从SQLManagementStudio获取到datagrid,但它不起作用。 首先我有一节课:

在那里我得到了第一个名字和第二个名字

class Person
{
    public string firstName { get; set; }
    public string secondName { get; set; }

}
我已经创建了一个按钮,用于连接数据库,使用select查询并刷新数据库

        string dbConnectionString = @"Data Source=Username\SQLEXPRESS;Initial Catalog=TestDatabase;Integrated Security=True";
        SqlConnection con = new SqlConnection(dbConnectionString);
        con.Open();
        string sqllogin = "SELECT firstName,secondName FROM TestDatabase.[dbo].[Persons]";
        SqlCommand cmd = new SqlCommand(sqllogin, con);
        SqlDataReader reader = cmd.ExecuteReader();


        List<Person> personList;
        personList = new List<Person>();

        while (reader.Read())
        {
            Person p = new Person();
            p.firstName = reader.GetString(0);
            p.secondName = reader.GetString(1);
            personList.Add(p);
        }

        dataGrid.DataContext = personList;
XAML如下所示:

<DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=firstName}" Header="Name" MinWidth="100"/>
            <DataGridTextColumn Binding="{Binding Path=secondtName}" Header="Second Name" MinWidth="100"/>
</DataGrid.Columns>
不幸的是,它没有起作用。你知道我该怎么解决这个问题吗?在这一刻,当我点击按钮时,什么也没有发生


问候。

您可以尝试将您的列表切换为可观察的集合,并更改该集合

dataGrid.DataContext = personList;


告诉我这是否有效,在您可以绑定Datagrid的itemsource以不创建新的ObservableCollection并直接添加您的Person之后。

因为firstName和SecondName不是List对象的属性。非常感谢,这很有效。但此时只有第一列firstName设置了数据,第二列为空。因为xaml的绑定是错误的,所以应该是:Path=secondName}
dataGrid.ItemSource = personList;