В отношении несвязанной задачи я недавно поднял нашу базу данных MySQL в MySQL Workbench , а при просмотре табличных отношений для приведенных выше таблиц я заметил «дубликаты» и / или ложные отношения, которые у меня были как-то пропустили раньше (они не появлялись в PHPMyAdmin FWIW). Удаление этих дополнительных отношений немедленно устранило проблему.
Необходимо установить [Editor(...)]
для свойства, давая ему a UITypeEditor
это делает редактирование; как так (с Вашим собственным редактором...)
using System;
using System.ComponentModel;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
static class Program
{
static void Main()
{
Application.Run(new Form { Controls = { new PropertyGrid { SelectedObject = new Foo() } } });
}
}
class Foo
{
[Editor(typeof(StringEditor), typeof(UITypeEditor))]
public string Bar { get; set; }
}
class StringEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
IWindowsFormsEditorService svc = (IWindowsFormsEditorService)
provider.GetService(typeof(IWindowsFormsEditorService));
if (svc != null)
{
svc.ShowDialog(new Form());
// update etc
}
return value;
}
}
Вы могли бы быть ablt для разыскивания существующего Редактора путем рассмотрения существующих свойств, которые ведут себя как Вы, хотят.