Domanda

Ho un oggetto collection che implementa IList. All'interno della collezione ho usato un elenco per raccogliere gli oggetti. All'interno di PropertyGrid (in fase di esecuzione), si lega correttamente e si apre l'Editor raccolta. Posso modificare e posso aggiungere correttamente gli elementi e posso catturare questi metodi quando vengono utilizzati nella classe di raccolta.

Tuttavia, se si tenta di rimuovere qualsiasi elemento, questi vengono rimossi dalla raccolta, ma né IList.Remove o IList.RemoveAt sembrano essere utilizzati dalla mia raccolta. Gli elementi eliminati devono inoltre essere eliminati da un database, comportamento che implemento nei metodi Rimuovi.

Ho anche rimosso tutta la logica dai metodi di rimozione e li ho lasciati con il lancio di NotImplmented (), e questi non vengono affatto attivati!

Ho anche implementato il mio CollectionEditor, ma ancora non riesco a vedere un modo per agganciarmi ai miei oggetti.

Quindi, dove dovrei cercare i metodi pertinenti? devo modificare anche il comportamento dei miei articoli?

È stato utile?

Soluzione

L'Editor raccolta non utilizza Rimuovi o RimuoviA . Invece, quando l'utente preme il pulsante OK, chiama il metodo IList.Clear e quindi chiama IList.Add per aggiungere tutti gli elementi che la raccolta conterrà. Non che funzioni con la versione non generica di IList .

Altri suggerimenti

Bene, ratti!

All'interno del mio CollectionEditor c'è un modo per ottenere la collezione vera e propria? Penso che otterrò la raccolta, quindi la confronterò dopo aver premuto OK e cancellerò i record da lì.

in caso contrario, rispolverare lo screen saver della matrice, estrarre un buon libro e dire a tutti che è in fase di compilazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top