我需要将点击单独按钮的数据复制到剪贴板,该剪贴板正在屏幕上的DataGrid中显示。我在互联网上发现了很多代码,但它在viewmodel中引用了DataGrid控件。我不想发送对viewmodel的控件引用,因为它使代码非单元可测试并违反MVVM。
我使用collectionviewsource绑定数据。有没有办法在不使用DataGrid对象的情况下将其复制到剪贴板?
请建议。
public void CopyCommand(object sender)
{
if (sender == null)
{
return;
}
var grid = sender as System.Windows.Controls.DataGrid;
if (grid == null)
{
return;
}
grid.SelectionMode = System.Windows.Controls.DataGridSelectionMode.Extended;
grid.SelectAllCells();
grid.ClipboardCopyMode = System.Windows.Controls.DataGridClipboardCopyMode.IncludeHeader;
System.Windows.Input.ApplicationCommands.Copy.Execute(null, grid);
grid.UnselectAllCells();
}