C# 在XAML-WPF中设置列标题名称

C# 在XAML-WPF中设置列标题名称,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我想在绑定到数据库的WPF datagrid中设置用户定义的列标题 为了在列标题中显示ServerID,EventlogID,我想显示为Server,Event Log 我已经试过了 <DataGrid x:Name="dataGrid1" ItemsSource="{Binding}" AutoGenerateColumns="True" > <DataGrid.Columns> <DataGridTextColumn Header="

我想在绑定到数据库的WPF datagrid中设置用户定义的列标题

为了在列标题中显示ServerID,EventlogID,我想显示为Server,Event Log

我已经试过了

 <DataGrid x:Name="dataGrid1" ItemsSource="{Binding}" AutoGenerateColumns="True" >
     <DataGrid.Columns>
        <DataGridTextColumn Header="Server" Width="Auto" IsReadOnly="True"  Binding="{Binding Path=ServerID}" />
            <DataGridTextColumn Header="Event Log" Width="Auto" IsReadOnly="True"  Binding="{Binding Path=EventLogID}" />
      </DataGrid.Columns>
   </DataGrid>
如何克服这种复制?
请帮忙

这是因为您保留了
AutoGenerateColumns=“True”
将其删除,这样就不会再有重复


您当前正在自动添加列一次,然后手动添加第二次

XAML:Add
AutoGeneratingColumn=“OnAutoGeneratingColumn”
事件到
DataGrid
event:

<DataGrid x:Name="dataGrid1"  ItemsSource="{Binding YourItems}" AutoGenerateColumns="True" AutoGeneratingColumn="OnAutoGeneratingColumn">
是的:)我的意思是我错过了基本的:-/
<DataGrid x:Name="dataGrid1"  ItemsSource="{Binding YourItems}" AutoGenerateColumns="True" AutoGeneratingColumn="OnAutoGeneratingColumn">
private void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
  switch (e.Column.Header)
  {
    case "ServerID":
      e.Column.Header = "Server";
      break;
    case "EventID":
      e.Column.Header = "Event";
      break;   
    default:
      e.Cancel = true;
      break;
  }
}