我有一个特定类类型Person的列表,我想用它制作一个DataGrid

private void DataGrid_Loaded(object sender, RoutedEventArgs e) {
    List<Person> x; //Don't worry, x has data in it
    (sender as DataGrid).ItemsSource = x;
}

Person类:
class Person {
    string fName, lName;
}

完成所有这些之后,我得到一个带有标题的表:“fName”和“lName”。如何将其更改为:“名字”和“姓氏”?

最佳答案

这是正确的方法:

首先在后面的代码中定义一个ObservableCollection,该代码将包含人员列表

第二个将该列表绑定(bind)到 DataGrid ItemSource 并绑定(bind)其属性

您可以通过简单地禁用AutoGenerateColumns并自行设置名称来更改显示在每列上的名称

这是完整的代码

<DataGrid ItemsSource="{Binding ListPersons}" AutoGenerateColumns="False">
      <DataGrid.Columns >
            <DataGridTextColumn Header="First Name" Binding="{Binding FName}"></DataGridTextColumn>
            <DataGridTextColumn Header="Last Name" Binding="{Binding LName}"></DataGridTextColumn>
      </DataGrid.Columns>
  </DataGrid>

以及后面的代码:
public class Person
{
    public String FName { get; set; }
    public String LName { get; set; }

}
public partial class MainWindow : Window
{
    public ObservableCollection<Person> ListPersons { get; set; }
    public MainWindow()
    {
        ListPersons=new ObservableCollection<Person>()
        {
            new Person()
            {
                FName = "FName1",
                LName = "LName1"
            },
             new Person()
            {
                FName = "FName2",
                LName = "LName2"
            }

        };
        this.DataContext = this;

    }


}

关于c# - 更改DataGrid列标题文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28477846/

10-16 13:27
查看更多