Вы можете попробовать что-то вроде:
dataGrid.SelectAllCells();
dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
ApplicationCommands.Copy.Execute(null, dataGrid);
Это дает вам данные из сетки данных ...
Если вы sh используете шаблон MVVM, вы можете передать grid в команду в качестве параметра:
var dataGrid = parameter as DataGrid;
Затем вы можете делать с данными все, что хотите, они будут в вашем буфере обмена:
string result = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);
Например ...