Исходный выбранный источник на самом деле не подключен к так называемому контейнеру элемента (см. DataGrid.ItemContainerGenerator), поэтому попытайтесь улучшить саму себя, хотя хорошая идея не даст вам далеко.
Для довольно глупого простого решения вы могли бы использовать знание о том, что при щелчке по одной одной ячейке и, таким образом, при нажатии этой ячейки извлекается столбец, например:
private void DataGrid_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
// First check so that we´ve only got one clicked cell
if(myGrid.SelectedCells.Count != 1)
return;
// Then fetch the column header
string selectedColumnHeader = (string)myGrid.SelectedCells[0].Column.Header;
}
Возможно, это не самое красивое из решений, но просто - король.
Надеюсь, это поможет!