मेरे पास निम्नलिखित परिभाषा के साथ एक WPF डेटाग्रिड है।मैं बाहरी अनुप्रयोग में ड्रैग और ड्रॉप को लागू करने के लिए WPF DataGrid व्यवहार को ओवरराइड कैसे करूं?
<DataGrid Name="DataGridFoo"
AutoGenerateColumns="False"
ItemsSource="{Binding GridData}"
IsReadOnly="True"
SelectionMode="Extended"
SelectionUnit="CellOrRowHeader">
यह मुझे उपयोगकर्ता को कोशिकाओं का "क्षेत्र" चुनने की अनुमति देता है। डेटाग्रिड एक अवलोकन संग्रह से जुड़ा हुआ है। XAML स्तंभ परिभाषाओं कुछ कॉलम, छिपा हुआ है इस तरह की कुछ दिखाई दे:
<DataGrid.ContextMenu>
<ContextMenu FontSize="16" Background="#FFE6E9EC">
<MenuItem Header="Contact" Click="Contact_Click" />
<Separator />
<MenuItem Header="Copy" Command="Copy" />
</ContextMenu>
</DataGrid.ContextMenu>
मैं चाहूँगा क्लिक करने के लिए सक्षम होने के लिए:
<DataGridTextColumn Binding="{Binding InvoiceID}"
Header="Invoice ID"
Visibility="Hidden"
Width="Auto"/>
<DataGridTextColumn Binding="{Binding InvoiceNumber}"
Header="Invoice Number"
Visibility="Visible"
Width="Auto"/>
<DataGridTextColumn
Binding="{Binding InvoiceDate, StringFormat=\{0:MM/dd/yy\}}"
Header="Invoice Date"
Visibility="Visible"
Width="Auto"/>
मैं भी एक माउस के दाहिने बटन संदर्भ मेनू डेटा ग्रिड के लिए परिभाषित किया गया है , वर्तमान में चयनित कक्षों की एक प्रति बाहरी अनुप्रयोग में खींचें और छोड़ें। मैं ड्रैगड्रॉप ऑपरेशन शुरू करने के लिए "Alt Key" और बाएं माउस बटन दबाकर संयोजन का उपयोग करने के बारे में सोच रहा था।
उदाहरण के लिए, डेटा ग्रिड में कोशिकाओं की "अनियमित" चयन पर विचार करें:
मैं कैसे आगे बढ़ना है पर स्पष्ट नहीं कर रहा हूँ और इस संबंध में कई प्रश्न हैं:
1) मैं किन घटनाओं को ओवरराइड करता हूं ताकि वामपंथी माउस क्लिक वर्तमान में चयनित कोशिकाओं को प्रभावित न करे?
2) मैं कैसे निर्धारित करूं कि बाएं माउस बटन क्लिक चयनित कक्षों के क्षेत्र में हो रहा है या नहीं? मैं डेटा टुकड़ा कैसे संभाल सकता हूं?
3) एक बार मैंने ऊपर निर्धारित किया है, तो अगला कदम क्या है? बाहरी ड्रॉप पर उपयोग के लिए क्लिपबोर्ड में डेटा कॉपी करें?
4) क्या काम करने के लिए मुझे डेटाग्रिड पर ओवरराइड करने की आवश्यकता है (यदि कोई है)?
धन्यवाद
धन्यवाद, लेकिन मुझे नहीं लगता कि आप समझ रहे हैं कि मैं क्या पूछ रहा हूं। मैं जानता हूं और ड्रैग और ड्रॉप और इसकी संबंधित घटनाओं से काफी परिचित हूं। मैं डेटाग्रिड में कोशिकाओं का एक गुच्छा चुनने की कोशिश कर रहा हूं और फिर उन्हें बाहरी अनुप्रयोग में खींच सकता हूं। इसे कॉपी और पेस्ट करने के लिए शॉर्टकट के रूप में सोचें। मैं डाटाग्रिड में कोशिकाओं को हटा या जोड़ नहीं रहा हूं। मैं यह पूछ रहा हूं कि मैं इसे प्राप्त करने के लिए मानक WPF डेटाग्रिड के व्यवहार/ईवेंट हैंडलिंग को कैसे ओवरराइड कर सकता हूं। – JohnB