通过定义的手势尝试执行方法XceedCopyCommandExecute,但此方法从未被调用过。当使用这个手势时,它只是用列标题复制整行。尽量避免使用不包含标题列进行复制。知道怎么解决吗?
提前感谢任何建议
public static RoutedCommand XceedCopyCommand = new RoutedCommand();
public CommandBinding XceedCopyCommandBinding { get { return xceedCopyCommandBinding; } }
private CommandBinding xceedCopyCommandBinding;
public BaseView()
{
XceedCopyCommand.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Control | ModifierKeys.Shift));
xceedCopyCommandBinding = new CommandBinding(XceedCopyCommand, XceedCopyCommandExecuted);
}
private void XceedCopyCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
if (sender == null || !(sender is Xceed.Wpf.DataGrid.DataGridControl)) return;
var dataGrid = sender as Xceed.Wpf.DataGrid.DataGridControl;
dataGrid.ClipboardExporters[DataFormats.UnicodeText].IncludeColumnHeaders = false;
var currentRow = dataGrid.GetContainerFromItem(dataGrid.CurrentItem) as Xceed.Wpf.DataGrid.Row;
if (currentRow == null) return;
var currentCell = currentRow.Cells[dataGrid.CurrentColumn];
if (currentCell != null && currentCell.HasContent)
{
Clipboard.SetText(currentCell.Content.ToString());
}
}
答案 0 :(得分:0)
您正在创建一个新的命令和绑定,但您没有将其分配给DataGrid,因此DataGrid将继续使用它在CommandBindings集合中的命令。
您必须首先删除默认的“复制”命令,然后添加自己的命令。
例如:
<head>