UITypeEditor и свойства ссылок только для чтения в .Net, WinForms - PullRequest
1 голос
/ 20 февраля 2010

Я думал, что у меня есть прибитые редакторы типов и преобразователи, пока я не попытался сохранить свойство типа Ссылка только для чтения после редактирования его в UITypeEditor.

В моем UITypeEditor, поскольку я работаю со свойством только для чтения, я осторожно возвращаю исходное значение (после обновления соответствующего вспомогательного свойства).

Это изменение немедленно отражается на конструкторе, но не будет сохраняться, пока я не сделаю что-то вроде изменения размера элемента управления, к которому присоединено свойство.

Чтобы исправить это, я слепо включаю вызов context.OnComponentChanged () перед возвратом значения.

Я понимаю, зачем это нужно. Это ссылочный тип, я его изменил (а не заменил), а сетка свойств этого не знает. У меня есть пара вопросов для уточнения:

Нужен ли мне вызов context.OnComponentChanging? Простой вызов OnComponentChanged работает в тестах, которые я провел до сих пор, но я не хочу кусать задницу в какой-то момент в будущем.

Кроме того, есть ли опасность, что при моем вызове OnComponentChanging я буду сохранять другие компоненты в DesignerTransactions, что я не должен будет сохраняться?

...