Вопрос

У меня есть объект коллекции, реализующий IList.Внутри коллекции я использовал список для сбора элементов.Внутри PropertyGrid (во время выполнения) он привязывается правильно, и открывается редактор коллекции.Я могу редактировать и правильно добавлять элементы, а также могу перехватывать эти методы, когда они используются в классе коллекции.

Однако, если вы попытаетесь удалить какие-либо элементы, они будут удалены из коллекции, но ни IList.Remove, ни IList.RemoveAt, похоже, не используются из моей коллекции.Удаленные элементы также предназначены для удаления из базы данных, и это поведение я реализую в методах Remove.

Я также удалил всю логику из методов удаления и оставил для них метод throw new NotImplmented(), и они вообще не запускаются!

У меня также есть собственный редактор CollectionEditor, но я до сих пор не вижу способа подключиться к моим объектам.

Итак, где мне следует искать подходящие методы?нужно ли мне также изменить поведение моих предметов?

Это было полезно?

Решение

Редактор коллекций не использует Удалять или Удалитьат.Вместо этого, когда пользователь нажимает кнопку ОК, он вызывает IList.Очистить метод, а затем вызывает IList.Добавить чтобы добавить все элементы, которые будут содержаться в коллекции.Не то чтобы это работало с неуниверсальной версией IList.

Другие советы

Ну, Крысы!

Внутри моего редактора коллекций есть ли способ получить настоящую коллекцию?Думаю, получу коллекцию, потом сравню ее, как только нажму ОК, и удалю оттуда записи.

если это не удастся, стряхните пыль с заставки матрицы, найдите хорошую книгу и расскажите всем, что она компилируется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top