Sto usando un PropertyGrid per mostrare le proprietà dai miei oggetti. Tuttavia, sto anche consentendo all'utente di creare le proprie proprietà e impostare valori per queste proprietà personalizzate. Ogni oggetto che può avere queste proprietà personalizzate ha una collezione di dizionari, dove la stringa è una chiave univoca per identificare la proprietà e Object è il valore di un tipo primitivo (stringa, bool, int ecc.)Ripristino delle proprietà da una griglia di proprietà
I ' Ho creato un PropertyDescriptor personalizzato con i metodi get e set che controllano il dizionario per una chiave corrispondente, oppure creano/sovrascrivono il valore con una chiave corrispondente rispettivamente.
Tuttavia, voglio anche dare all'utente la possibilità di cancellare la proprietà e quindi rimuovere completamente la sua voce dal dizionario. Metterei il codice a questo nel metodo di override ResetValue del mio PropertyDescriptor personalizzato, tuttavia non vedo alcun modo attraverso l'interfaccia PropertyGrid per richiamare questo? Non sembra essere un'opzione del menu contestuale o qualcosa di ovvio come quello.
Quindi, se ho un PropertyDescriptor personalizzato con un metodo ResetValue personalizzato, come faccio ad evocare il metodo da un PropertyGrid?
Ahh sì ho appena trovato così questo post su MSDN. Sembra che sia l'opzione migliore. http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/9dd7b9bf-4134-4105-aba8-65002fed04f2 –
Sì, la chiamata a propGri.SelectedGridItem.Select() sembra come se fosse chiarire anche alcuni problemi di aggiornamento. –