2012-12-14 53 views
9

WPF के लिए, डेटा ग्रिड मैं ओवरराइड OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args) या CopingRowClipboardContent event उपयोग करने के लिए, मदद नहीं करते हैं, अपने कस्टम पाठ डेटा क्लिपबोर्ड पर प्रतिलिपि करने के लिए कोशिश कर रहा हूँ Ctrl+C विविध प्रयासों के बाद।WPF डेटा ग्रिड, कॉपी के बाद 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

सही तरीका इस संपत्ति

ClipboardCopyMode="ExcludeHeader" 

XAML ग्रिड पर जोड़ सकते हैं और प्रत्येक प्रॉपर्टी आप इस XAML

जोड़ने कॉपी चाहते हैं के लिए है की जरूरत है
<DataGridTemplateColumn ClipboardContentBinding="{Binding XXXXXX} ..... 

अन्य संकाय चरण डेटा ग्रिड घटना को कार्यान्वित कर रहा है क्लिपबोर्ड डेटा को संशोधित करने के लिए CopyRowClipboardContent