可以通过以下步骤实现:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Column 1" Binding="{Binding Property1}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Column 1" />
<Button Click="SortButton_Click">
<Image Source="sort_icon.png" />
</Button>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<!-- 其他列定义 -->
</DataGrid.Columns>
</DataGrid>
private void SortButton_Click(object sender, RoutedEventArgs e)
{
Button sortButton = (Button)sender;
DataGridColumnHeader columnHeader = FindParent<DataGridColumnHeader>(sortButton);
DataGrid dataGrid = FindParent<DataGrid>(columnHeader);
// 获取列的绑定路径
string bindingPath = ((Binding)columnHeader.Column.ClipboardContentBinding).Path.Path;
// 获取数据源
IEnumerable<object> itemsSource = dataGrid.ItemsSource as IEnumerable<object>;
// 对数据源进行排序
IEnumerable<object> sortedItems = itemsSource.OrderBy(item => item.GetType().GetProperty(bindingPath).GetValue(item));
// 更新DataGrid的ItemsSource
dataGrid.ItemsSource = sortedItems;
}
这样,当用户点击自定义标头上的排序图标时,DataGrid将按照所选列的值对数据进行排序。
对于腾讯云相关产品和产品介绍链接地址,由于不能提及具体品牌商,建议你参考腾讯云的文档和官方网站,了解他们提供的云计算解决方案和相关产品。
领取专属 10元无门槛券
手把手带您无忧上云