Question

J'ai un objet de collection qui implémente IList. Dans la collection, j'ai utilisé une liste pour rassembler les objets. Dans PropertyGrid (au moment de l'exécution), il se lie correctement et l'éditeur de collection s'ouvre. Je peux éditer, ajouter des éléments correctement et attraper ces méthodes lorsqu'elles sont utilisées dans la classe de collection.

Toutefois, si vous essayez de supprimer des éléments, ils sont supprimés de la collection, mais ni IList.Remove ni IList.RemoveAt ne sont apparemment utilisés dans ma collection. Les éléments supprimés doivent également être supprimés d’une base de données, comportement que j’implémente dans les méthodes de suppression.

J'ai également supprimé toute la logique des méthodes de suppression et les ai laissées avec la nouvelle balise NotImplmented (), et celles-ci ne sont pas renvoyées du tout!

J'ai également une implémentation de propre CollectionEditor, mais je ne vois toujours pas comment attacher mes objets.

Alors, où devrais-je chercher pour trouver les méthodes appropriées? dois-je aussi changer le comportement de mes objets?

Était-ce utile?

La solution

L'éditeur de collection n'utilise pas Supprimer ou SupprimerAt . Lorsque l'utilisateur appuie sur le bouton OK, il appelle la méthode IList.Clear , puis IList.Add pour ajouter tous les éléments contenus dans la collection. Cela ne fonctionne pas avec la version non générique de IList .

Autres conseils

Eh bien, les rats!

À l'intérieur de ma collection, l'éditeur existe-t-il un moyen de mettre la main sur la collection actuelle? Je pense que je vais récupérer la collection, puis la comparer une fois que vous aurez appuyé sur OK, puis supprimer les enregistrements à partir de là.

Si vous ne le faites pas, dépoussiérez l'économiseur d'écran matriciel, sortez un bon livre et dites à tout le monde qu'il est en train de le compiler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top