PropertyGrid 急救,高手请进!
我在运行时通过PropertyGrid改变对象的属性,其中有一个属性的编辑器是自定义的UITypeEditor,因为当某个属性更改后要拿到其值,所以使用PropertyValueChanged事件,但唯独自定义的UITypeEditor属性进不到PropertyValueChanged事件处理程序。请高手帮忙,急!急!急! --------------------编程问答-------------------- ? --------------------编程问答-------------------- 在从编辑器获取返回值的时候,如果是引用对象,不要只改变value的成员:
object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
(value as List<int>)[0] = 123; // wrong.
return value;
List<int> result = new List<int>; // correct
result.AddRange( value as List<int> );
result[0] = 123;
return result;
}
而是要返回一个新的对象。后面一种情况将触发PropertyValueChanged事件。
看来PropertyGrid根据简单的引用相等来判断属性是否改变。 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 非常感谢大家的支持(虽然上面的答案没起到作用),问题已经解决了。
补充:.NET技术 , C#