Pergunta

Eu tenho um objeto de coleção que implementa IList. Dentro da coleção Eu tenho usado uma lista para recolher os itens. Dentro do PropertyGrid (em tempo de execução), que se liga adequadamente eo Editor de Coleção abre. Posso editar, e eu posso adicionar itens corretamente e eu posso pegar esses métodos quando eles são usados ??na classe de coleção.

No entanto, se você tentar remover quaisquer itens, eles são removidos da coleção, mas nem IList.Remove ou IList.RemoveAt são aparentemente usado de minha coleção. Os itens excluídos também são feitos para serem excluídos de um banco de dados, comportamento que eu implementar nos métodos remover.

Eu também removeu toda a lógica dos métodos de remover e deixou-os com lance novo NotImplmented (), e estes não ser demitido em tudo!

Eu também tenho um implementado pela própria CollectionEditor, mas ainda não pode ver uma maneira de ligar para meus objetos.

Então, onde eu deveria estar olhando para encontrar os métodos relevantes? eu preciso para alterar o comportamento de meus artigos também?

Foi útil?

Solução

O Editor de coleção não usa Remover ou RemoveAt . Em vez disso, quando o usuário pressiona o botão OK, ele chama o IList.Clear e em seguida, chama IList.Add para adicionar todos os itens da coleção conterá. Não que ele funciona com a versão não-genérico de IList .

Outras dicas

Bem, ratos!

Dentro do meu CollectionEditor existe alguma maneira de se apossar da coleção real? Acho que vou começar a coleta, e depois compará-lo uma vez OK foi pressionado, e excluir os registros de lá.

na sua falta, a poeira do protetor de tela de matriz, cavar um bom livro e dizer a todos que está compilando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top