【发布时间】:2014-08-27 16:09:06
【问题描述】:
我正在尝试使用 PropertyGrid 编辑 List<string>,但在其内容被修改时它不会触发 PropertyValueChanged 事件。
我对此进行了研究并尝试使用自定义 TypeConverter 类,但即使我让编辑器显示并让我修改值,我也无法触发此事件。
我也尝试使用以下属性,它会调出字符串编辑器,但这也不会在更改时触发事件。
[Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
"System.Drawing.Design.UITypeEditor, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
我也尝试使用 UITypeEditor 并覆盖 EditValue 方法,但在编辑值时不会触发。
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
MessageBox.Show("This never appears...");
return base.EditValue(context, provider, value);
}
有没有办法编辑List<string> 并触发 PropertyValueChanged 事件?
【问题讨论】:
-
你试过这个吗:[PropertyGrid 不引发 PropertyValueChanged 事件][1] [1]:stackoverflow.com/questions/15110594/…
-
是的,通过PropertyGrid更改属性时,这不会调用事件。