2012-12-14 72 views
9

對於WPF,數據網格,我試圖複製到剪貼板我的自定義文本數據,之後Ctrl+C 多元化嘗試使用替代 OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args)CopingRowClipboardContent event,沒有幫助。WPF的DataGrid,複製Ctrl + C後到剪貼板,OnCopyingRowClipboardContent

剪貼板可以獲得空行或標準行文本,但不是我想放在那裏。 例如

protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args) 
{ 
    Clipboard.SetText("Abc-hello"); 
    bool b1 = Clipboard.ContainsText(); 
    string s1 = Clipboard.GetText(); 
} 

s1得到所需的文本,但走出去這種方法後,剪貼板變空。 任何想法,如果可以解決這個問題?

回答

3

你需要設置DataGridRowClipboardEventArgs的ClipboardRowContent財產

static void dataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e) 
{ 
    e.ClipboardRowContent.Clear(); 
    e.ClipboardRowContent.Add(new DataGridClipboardCellContent(e.Item, (sender as DataGrid).Columns[0], "Abc-hello")); 
} 
9

正確的方法是添加在XAML電網這個屬性

ClipboardCopyMode="ExcludeHeader" 

,併爲您想複製添加此XAML

每個屬性
<DataGridTemplateColumn ClipboardContentBinding="{Binding XXXXXX} ..... 

其他兼容步驟是實現dataGrid事件CopyingRowClipboardContent修改剪貼板數據