2009-04-09 11 views
11

के लिए डिफ़ॉल्ट अंतर्निहित संपादक मुझे कहीं भी इसका जवाब नहीं मिल रहा है। 3.5 फ्रेमवर्क PropertyGrid नियंत्रण में कौन से डिफ़ॉल्ट संपादक/कनवर्टर्स निर्माण कर रहे हैं। अन्यथा मैं किस वस्तु प्रकार पर फेंक सकता हूं और यह विश्वसनीय रूप से दिखाने और संपादित करने में सक्षम हो सकता है? मुझे कस्टम संपादकों का उपयोग करने पर बहुत सारे ट्यूटोरियल मिले हैं (जो मैं किसी बिंदु पर कर सकता हूं)। लेकिन अभी मेरे कार्यक्रम में मैं उपयोगकर्ता को अपनी खुद की कस्टम प्रॉपर्टी बनाने की इजाजत दे रहा हूं और मैं जानना चाहता हूं कि मुझे किस ऑब्जेक्ट प्रकारों को यह मानने की अनुमति देनी चाहिए कि वे उन्हें PropertyGrid में संपादित करेंगे।PropertyGrid नियंत्रण

उत्तर

4

आप UITypeEditor (System.Drawing.Design namespace में) से प्राप्त कक्षाओं पर एक नज़र डालना चाहते हैं। इन प्रकारों को EditorAttribute (System.ComponentModel namespace में) के पैरामीटर के रूप में पारित किया जाएगा।

आप इस प्रकार के मेटाडेटा को भी देख सकते हैं कि EditorAttribute लागू किया गया है। हालांकि, प्रतिबिंब का उपयोग न करें, क्योंकि PropertyGrid class उपयोग नहीं करता है।

इसके बजाय प्रकार पर गुणों के लिए संपत्ति वर्णनकर्ता प्राप्त करने के लिए TypeDescriptor class का उपयोग करें (स्थिर GetProperties method पर कॉल करें)। फिर, PropertyDescriptor उदाहरण के साथ, उस संपत्ति के संपादक का उदाहरण प्राप्त करने के लिए GetEditor method पर कॉल करें।

1

आप वास्तव में PropertyGrid पर किसी ऑब्जेक्ट को फेंक सकते हैं। यह स्वचालित रूप से बहुत सी चीजें करेगा। यदि आप एक विशेष संपादन अनुभव चाहते हैं, तो आपको केवल कस्टम यूआई प्रकार के संपादकों को बनाने की आवश्यकता है, जो मूल रूप से प्रदान नहीं किया जाता है। और यहां तक ​​कि उस मामले में आप प्रति संपत्ति करते हैं, न कि पूरे वस्तु के लिए।

+0

लेकिन यह सब कुछ स्वचालित रूप से क्या करेगा? अभी मैं कस्टम संपादकों से निपटना नहीं चाहता हूं। मैंने विभिन्न संख्याओं, स्ट्रिंग, बूल और डेटटाइम की कोशिश की है और वे सभी या तो काम करते हैं या संपादकों में निर्मित होते हैं। मैं उम्मीद कर रहा था कि सभी प्रकार के किसी भी सूची में डिफ़ॉल्ट रूप से संपादित किया जा सकता है। –

+0

यदि आप एक विशेषता के रूप में संलग्न UITypeEditor है या नहीं, तो आप अपनी संपत्ति प्रकारों के विरासत पदानुक्रम को देख सकते हैं। डिफ़ॉल्ट रूप से प्रॉपर्टी ग्रिड को स्ट्रिंग से/प्राप्त करने के लिए या तो एक संपादक या एक प्रकार कनवर्टर की आवश्यकता होती है। – grover

1

प्रॉपर्टीग्रिड टाइपकॉन्टर का उपयोग करता है और प्रत्येक प्राचीन प्रकार (साथ ही आदिम प्रकार के संग्रह) के लिए टाइपकॉन्टर हैं।

जब तक आप प्राचीन प्रकारों में से एक का उपयोग कर रहे हैं या प्राचीन प्रकार के संग्रह का उपयोग कर रहे हैं, तो संपत्ति ग्रिड एक संपादन UI प्रदान करने का ख्याल रखने में सक्षम होना चाहिए।

1

UITypeEditors के अलावा, PropertyGrid किसी भी ऑब्जेक्ट को टाइपकॉन्टर के साथ प्रदर्शित करने में सक्षम है जो CanConvertFrom (स्ट्रिंग) के लिए सच है। इसे पूरा करने के लिए आप अपने ऑब्जेक्ट प्रकारों को विशिष्ट ऑब्जेक्ट प्रकारों के लिए कार्यान्वित कर सकते हैं।

7

ध्यान रखें कि कुछ गैर-सार्वजनिक वर्ग हैं।

System.Object 
    System.Drawing.Design.UITypeEditor 
    System.ComponentModel.Design.CollectionEditor 
     System.ComponentModel.Design.ArrayEditor 
     System.Web.UI.Design.CollectionEditorBase 
     System.Web.UI.Design.WebControls.WizardStepCollectionEditor 
     System.Web.UI.Design.WebControls.EmbeddedMailObjectCollectionEditor 
     System.Web.UI.Design.WebControls.HotSpotCollectionEditor 
     System.Web.UI.Design.WebControls.ListItemsCollectionEditor 
     System.Web.UI.Design.WebControls.MenuItemStyleCollectionEditor 
     System.Web.UI.Design.WebControls.RoleGroupCollectionEditor 
     System.Web.UI.Design.WebControls.StyleCollectionEditor 
     System.Web.UI.Design.WebControls.SubMenuStyleCollectionEditor 
     System.Web.UI.Design.WebControls.TableCellsCollectionEditor 
     System.Web.UI.Design.WebControls.TableRowsCollectionEditor 
    System.ComponentModel.Design.BinaryEditor 
    System.ComponentModel.Design.DateTimeEditor 
    System.ComponentModel.Design.MultilineStringEditor 
    System.ComponentModel.Design.ObjectSelectorEditor 
    System.Windows.Forms.Design.AnchorEditor 
    System.Windows.Forms.Design.BorderSidesEditor 
    System.Windows.Forms.Design.DockEditor 
    System.Windows.Forms.Design.FileNameEditor 
    System.Windows.Forms.Design.FolderNameEditor 
    System.Windows.Forms.Design.ShortcutKeysEditor 
    System.Web.UI.Design.ConnectionStringEditor 
    System.Web.UI.Design.DataBindingCollectionEditor 
    System.Web.UI.Design.ExpressionsCollectionEditor 
    System.Web.UI.Design.UrlEditor 
    System.Web.UI.Design.XmlFileEditor 
    System.Web.UI.Design.WebControls.DataGridColumnCollectionEditor 
    System.Web.UI.Design.WebControls.DataControlFieldTypeEditor 
    System.Web.UI.Design.WebControls.MenuBindingsEditor 
    System.Web.UI.Design.WebControls.MenuItemCollectionEditor 
    System.Web.UI.Design.WebControls.ParameterCollectionEditor 
    System.Web.UI.Design.WebControls.RegexTypeEditor 
    System.Web.UI.Design.WebControls.TreeNodeCollectionEditor 
    System.Web.UI.Design.WebControls.TreeViewBindingsEditor 
    System.Web.UI.Design.WebControls.DataPagerFieldTypeEditor 
    System.Messaging.Design.QueuePathEditor 
    System.Drawing.Design.ImageEditor 
    System.Drawing.Design.ColorEditor 
    System.Drawing.Design.ContentAlignmentEditor 
    System.Drawing.Design.CursorEditor 
    System.Drawing.Design.FontEditor 
    System.Drawing.Design.FontNameEditor 
    System.Drawing.Design.IconEditor 
    System.Workflow.ComponentModel.Design.TypeBrowserEditor 
    System.Workflow.ComponentModel.Design.BindUITypeEditor 
संबंधित मुद्दे