public override object EditValue (System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context != null && context.Instance != null) { GridItem gridItem = context as GridItem; ReferencePathCollectionEditorForm form = new ReferencePathCollectionEditorForm (); form.ReferencePaths = (ReferencePathCollection) value; DialogResult result = form.ShowDialog (); object returnObject = null; if (result == DialogResult.OK) { returnObject = form.ReferencePaths; RemoveBlankPaths (returnObject as ReferencePathCollection); } else { //HACK: we must collapse any child members, otherwise a PropertyGrid bug will cause an error msg to appear CollapseChildren (gridItem); returnObject = value; } return returnObject; } else return value; }
public RefPathPropGridProxy (ReferencePathCollectionEditorForm editorForm) { _editorForm = editorForm; ListViewItem li = editorForm.listView1.SelectedItems [0]; _listViewItem = li; _referencePath = (ReferencePath) li.Tag; }