[英]Set Column Header Name in XAML- WPF
我想在绑定到数据库的WPF数据网格中设置用户定义的列标题。
用于显示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>
这样可以正常工作,它会更改列标题,并且还会显示数据。
但我的问题是它显示两次作为XAML的前两个列标题和DB的其他两个列标题。
|Server|Event Log|ServerID|EventLogID|
如何克服这种复制? 请帮忙!
那是因为你离开AutoGenerateColumns="True"
将其删除,并且不再有重复。
您当前正在自动添加列,然后手动添加第二列!
XAML:将AutoGeneratingColumn="OnAutoGeneratingColumn"
事件添加到DataGrid
evement:
<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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.