Target một phong cách chung cho tất cả DataGridColumnHeaders:
<DataGrid.Resources>
<ContextMenu x:Key="DataGridColumnHeaderContextMenu" ...>
</ContextMenu>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContextMenu"
Value="{StaticResource DataGridColumnHeaderContextMenu}" />
</Style>
</DataGrid.Resources>
Nếu bạn muốn các menu ngữ cảnh khác nhau cho các tiêu đề cột khác nhau sau đó sử dụng trình kích hoạt:
<DataGrid.Resources>
<ContextMenu x:Key="ColumnHeaderContextMenu1" ...>
</ContextMenu>
<ContextMenu x:Key="ColumnHeaderContextMenu2" ...>
</ContextMenu>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Style.Triggers>
<Trigger Property="Content" Value="Column1">
<Setter Property="ContextMenu"
Value="{StaticResource ColumnHeaderContextMenu1}" />
</Trigger>
<Trigger Property="Content" Value="Column2">
<Setter Property="ContextMenu"
Value="{StaticResource ColumnHeaderContextMenu2}" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
Hy vọng t mũ giúp.
Nguồn
2011-10-05 05:22:05
Còn nếu bạn đang tạo các cột động? – MoonKnight
Trong trường hợp cột động, giải pháp thứ hai sẽ vẫn giữ đúng giả định rằng bạn sẽ biết tên cột trước khi bàn tay. –