Я думал, что у меня есть прибитые редакторы типов и преобразователи, пока я не попытался сохранить свойство типа Ссылка только для чтения после редактирования его в UITypeEditor.
В моем UITypeEditor, поскольку я работаю со свойством только для чтения, я осторожно возвращаю исходное значение (после обновления соответствующего вспомогательного свойства).
Это изменение немедленно отражается на конструкторе, но не будет сохраняться, пока я не сделаю что-то вроде изменения размера элемента управления, к которому присоединено свойство.
Чтобы исправить это, я слепо включаю вызов context.OnComponentChanged () перед возвратом значения.
Я понимаю, зачем это нужно. Это ссылочный тип, я его изменил (а не заменил), а сетка свойств этого не знает. У меня есть пара вопросов для уточнения:
Нужен ли мне вызов context.OnComponentChanging? Простой вызов OnComponentChanged работает в тестах, которые я провел до сих пор, но я не хочу кусать задницу в какой-то момент в будущем.
Кроме того, есть ли опасность, что при моем вызове OnComponentChanging я буду сохранять другие компоненты в DesignerTransactions, что я не должен будет сохраняться?