2012-08-13 13 views
9

में संपत्ति आइटम के लिए मूल्य बदलें नीचे दी गई तस्वीर में, "MyCars" एक संग्रह है। यदि किसी ऑब्जेक्ट की प्रॉपर्टी एक संग्रह है, तो प्रॉपर्टीग्रिड में, आइटम को चयनित होने पर दाईं ओर एक बटन के साथ स्ट्रिंग "(संग्रह)" के रूप में दिखाई देता है।PropertyGrid

क्या "(संग्रह)" मान बदलना संभव है? यदि हां, तो कैसे? कारण मैं पूछता हूं क्योंकि मैंने ऑब्जेक्ट के लिए एक कस्टम UITypeEditor लागू किया है जो मेरे प्रोग्राम में PropertyGrid में दिखाई देगा। अभी तक, दाईं ओर वाला बटन दिखाई देता है लेकिन टेक्स्ट मान संपत्ति के प्रदर्शन नाम के समान होता है। मुझे वहां दिखाई देने के लिए एक अलग स्ट्रिंग चाहिए।

Example propertygrid.

संपादित करें: मैं UITypeEditor से PaintValue विधि ओवरराइड कर सकते हैं और एक आइकन है, जो मैं अगर मैं इस मुद्दे को हल नहीं कर सकते कर खत्म हो सकता है प्रदान करते हैं, लेकिन क्या इसके लायक है, मुझे पता है के लिए मैं था अभी भी यह जानना पसंद है कि कैसे और कैसे "(संग्रह)" पाठ बदला जा सकता है।

+0

मुझे लगता है कि यदि आप पेंटवेल्यू विधि का उपयोग करते हैं, तो सुनिश्चित करें कि आप अभी भी अपने आइकन के बगल में "(संग्रह)" के साथ समाप्त हो जाएंगे, लेकिन यह सुनिश्चित नहीं है। –

उत्तर

7

यह आलेख Customized display of collection data in a PropertyGrid सहायता का हो सकता है।


** अद्यतन **

एक संक्षिप्त लेख के संस्करण (लिंक उपलब्ध नहीं किया जा रहा है की स्थिति में), प्रदान करने के लिए कदम एक में प्रदर्शन और संग्रह सामग्री का वर्णन, अनुरूपण में शामिल प्रॉपर्टीग्रिड निम्नानुसार हैं:

  1. एक क्लास फॉर्म को अमूर्त बेस क्लास PropertyDescriptor प्राप्त करके एक कस्टम प्रॉपर्टी डिस्क्रिप्टर प्रदान करें।
  2. अमूर्त विधियों और गुणों को ओवरराइड करें। DisplayName और विवरण गुणों के लिए उचित कार्यान्वयन प्रदान करें।
  3. अपने संग्रह वर्ग को ICustomTypeDescriptor इंटरफ़ेस को लागू करने दें।
  4. GetProperties() विधि द्वारा कस्टम प्रॉपर्टी डिस्क्रिप्टर का संग्रह लौटें।
  5. वैकल्पिक रूप से TypeConverter .NET द्वारा प्रदान की गई व्युत्पन्न वस्तुओं का उपयोग करें या अपने डोमेन कक्षाओं के पाठपरक प्रतिनिधित्व को अनुकूलित करने के लिए अपनी कक्षाएं लागू करें। उन्हें TypeConverterAttribute कक्षा का उपयोग करके उचित कक्षाओं या गुणों पर असाइन करें।

PropertyGrid डेटा, संपत्ति वर्णनकर्ता एक साथ श्रृंखलित किया जा सकता है वैश्वीकृत करने के लिए (भी Globalized property grid देखें)।

+1

^यही जवाब है! –

+1

वाह! वह काम किया! धन्यवाद! – kevin628

संबंधित मुद्दे