मैं WPF डेटाग्रिड में संपादन कोशिकाओं को कैसे निष्क्रिय कर सकता हूं?


116

मैं विंडोज प्रेजेंटेशन फाउंडेशन में डेटाग्रिड का निर्माण कर रहा हूं, और मुझे एक समस्या है। जब कोई उपयोगकर्ता मेरे डेटाग्रिड में सेल पर डबल-क्लिक करता है, तो सेल एडिट मोड में चला जाता है। मैं इसे रोकना चाहता हूं। इसके बजाय मैं चाहता हूं कि उपयोगकर्ता पूर्ण पंक्ति का चयन करने में सक्षम हों - इसमें मूल्यों को संपादित न करें।

मैं इसे कैसे बना सकता हूं ताकि क्लिक-ऑन सेल को एडिट मोड में डालने के बजाय डबल-क्लिक पूरी पंक्ति का चयन कर सके?

जवाबों:


254

WPF DataGrid में एक IsReadOnlyसंपत्ति होती है जिसे आप Trueयह सुनिश्चित करने के लिए सेट कर सकते हैं कि उपयोगकर्ता आपकी DataGridकोशिकाओं को संपादित नहीं कर सकते ।

आप अपने DataGridआवश्यकतानुसार व्यक्तिगत कॉलम के लिए भी यह मान सेट कर सकते हैं ।


1
ग्रिड को धूसर किया जाता है और एक अक्षम अवस्था में अधिक दिखता है - वाइनफॉर्म से पठनीय स्थिति के जैसा नहीं होता है।
बुडा फ्लोरिन

3
मैं बुडा फ्लोरिन से सहमत हूं। इसे ReadOnly पर सेट करने से यह और अधिक दिखाई देता है जैसे यह अक्षम है। अक्षम और ReadOnly भिन्न हैं क्योंकि ReadOnly सामान्य रूप से आपको प्रतिलिपि बनाने के लिए पाठ का चयन करने देता है। जब आप DataGrid को ReadOnly होने के लिए सेट करते हैं तो आप कक्षों में पाठ का चयन नहीं कर सकते हैं।
निक

2
@LeslieDavies क्या होगा अगर मैं उन्हें अक्षम रखना चाहता हूं, लेकिन जब मैं DEL दबाता हूं तो मैं डेटाग्रिड से आइटम निकालने में सक्षम होना चाहता हूं?
रॉक्सी’प्रो

@ रॉक्सी'प्रो, मेरा एक ही सवाल है। क्या आपको एक समाधान मिला?
पैट्रिक

45

DataGrid में एक XAML गुण है IsReadOnlyजिसे आप निम्न पर सेट कर सकते हैं true:

<my:DataGrid
    IsReadOnly="True"
/>

3

यदि आप संपूर्ण ग्रिड को संपादित करना अक्षम करना चाहते हैं, तो आप ग्रिड पर सही होने के लिए IsReadOnly सेट कर सकते हैं। यदि आप नई पंक्तियों को जोड़ने के लिए उपयोगकर्ता को अक्षम करना चाहते हैं, तो आप संपत्ति सेट कर सकते हैं CanUserAddRows = "गलत"

<DataGrid IsReadOnly="True" CanUserAddRows="False" />

इसके अलावा अधिक आप संपादन को अक्षम करने के लिए अलग-अलग कॉलम पर IsReadOnly सेट कर सकते हैं।


2

मैं टिप्पणियों में उपयोगकर्ताओं को यह सोचता हुआ देखता हूं कि पंक्ति हटाने की अनुमति देते हुए सेल संपादन को कैसे अक्षम किया जाए: मैंने यह सब पढ़ने के लिए व्यक्तिगत रूप से केवल डेटाग्रिड के बजाय, केवल पढ़ने के लिए सभी कॉलम सेट करके किया।

<DataGrid IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True"/>
        <DataGridTextColumn IsReadOnly="True"/>
    </DataGrid.Columns>
</DataGrid>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.