2012-06-14 36 views
4

我正在使用WPF DataGrid來顯示名稱 - 值對。 SelectionUnit設置爲FullRow,因爲它看起來不錯,但是,當用戶選擇行並按下Ctrl鍵+ç真正想要的值複製文本,而不是它的名稱和值的串聯的默認行爲。在尋找解決方案時,我發現CopyingRowClipboardContent事件,但the MSDN page沒有關於如何使用它的信息。或者我應該自己捕獲PreviewKeyDown在WPF DataGrid中自定義Ctrl + C行爲

回答

2

您可以使用DataGridRowClipboardEventArgs修改的CopyingRowClipboardContent事件處理程序中複製數據。

反編譯源代碼

public class DataGridRowClipboardEventArgs 
{ 
    /// <summary> 
    /// This list should be used to modify, add or remove a cell 
    /// content before it gets stored into the clipboard. 
    /// </summary> 
    public List<DataGridClipboardCellContent> ClipboardRowContent 
    { 
     ... 

因此,舉例來說,如果你有兩列,你只需要第一,你可以刪除這樣的第二項:

private void grid_CopyingRowClipboardContent(
    object sender, DataGridRowClipboardEventArgs e) 
{ 
    e.ClipboardRowContent.RemoveAt(1); 
} 
0

也許這是你在找什麼

ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader;

+0

不,那是排除列標題,我想要的是排除行中的某些單元格。 –