C# .Net、WinForms中的UITypeEditor和只读引用类型属性

C# .Net、WinForms中的UITypeEditor和只读引用类型属性,c#,.net,vb.net,readonly,uitypeeditor,C#,.net,Vb.net,Readonly,Uitypeeditor,在UITypeEditor中编辑只读引用类型属性之后,我一直认为我已经锁定了类型编辑器和转换器 在我的UITypeEditor中,因为我使用的是只读属性,所以我会小心地传回原始值(在更新相关子属性之后) 此更改会立即反映在设计器上,但不会持久化,除非我执行诸如调整属性所附加到的控件的大小之类的操作 为了解决这个问题,我盲目地在返回值之前包括对context.OnComponentChanged()的调用 我明白为什么需要这样做。这是一个引用类型,我对它进行了修改(而不是替换),而属性网格不知道这

在UITypeEditor中编辑只读引用类型属性之后,我一直认为我已经锁定了类型编辑器和转换器

在我的UITypeEditor中,因为我使用的是只读属性,所以我会小心地传回原始值(在更新相关子属性之后)

此更改会立即反映在设计器上,但不会持久化,除非我执行诸如调整属性所附加到的控件的大小之类的操作

为了解决这个问题,我盲目地在返回值之前包括对context.OnComponentChanged()的调用

我明白为什么需要这样做。这是一个引用类型,我对它进行了修改(而不是替换),而属性网格不知道这一点。我有几个问题需要澄清:

我还需要调用context.onComponent更改吗?到目前为止,对OnComponentChanged的一个简单调用在我所做的测试中起作用,但我不想在将来的某个时候咬屁股

另外,在调用OnComponentChange时,我是否有可能在DesignerTransactions中持久化我不应该持久化的其他组件