我为一个属性创建了一个编辑器。
但是,我想将一些参数传递给编辑器的构造函数,但我不确定如何执行此操作。

FOO _foo = new foo();
[Editor(typeof(MyEditor), typeof(UITypeEditor))]
public object foo
 {
 get { return _foo; }
 set {_foo = value;}
 }

~
class MyEditor: UITypeEditor
{
  public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
  {
    //some other code
    return obj;
  }
}

最佳答案

当然,您可以向 myEditor 类添加另一个(参数化的)构造函数,如下所示:

public class MyEditor: UITypeEditor
{
  // new parametrized constructor
  public MyEditor(string parameterOne, int parameterTwo...)
  {
    // here your code
  }

  ...
  ...
}

问题是您还应该控制谁调用该构造函数,因为只有这样您才能决定使用哪个构造函数,并且您可以为参数指定/分配值。

关于c# - 如何将参数传递给继承 UITypeEditor 的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7456738/

10-12 02:27