gpt4 book ai didi

.net - 是否有内置的 TypeConverter 或 UITypeEditor 来编辑字符串列表

转载 作者:行者123 更新时间:2023-12-01 00:04:20 24 4
gpt4 key购买 nike

我想知道 .Net-3.5 是否带有内置 List<string>string[] TypeConverterUITypeEditor这样我就可以从属性网格编辑这种属性。

最佳答案

UITypeEditor for List<String>
对于 string[]你不需要做任何特别的事情,属性网格将使用一个包含多行文本框的标准对话框来编辑字符串数组,每一行都是数组中的一个元素。

编辑 List<string>在属性网格中,您可以使用以下任一选项:

  • StringCollectionEditor它显示了一个对话框,其中包含一个用于编辑元素的多行文本框
  • 创建自定义 CollectionEditor在集合编辑器对话框中编辑项目

  • 选项 1 - StringCollectionEditor
    private List<string> myList = new List<string>();
    [Editor("System.Windows.Forms.Design.StringCollectionEditor, " +
    "System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
    typeof(UITypeEditor))]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public List<string> MyList {
    get {
    return myList;
    }
    set {
    myList = value;
    }
    }

    enter image description here

    选项 2 - 自定义集合编辑器

    首先创建自定义编辑器:
    //You need to add reference to System.Design
    public class MyStringCollectionEditor : CollectionEditor {
    public MyStringCollectionEditor() : base(type: typeof(List<String>)) { }
    protected override object CreateInstance(Type itemType) {
    return string.Empty;
    }
    }

    然后使用 editor 属性装饰该属性:
    private List<string> myList = new List<string>();
    [Editor(typeof(MyStringCollectionEditor), typeof(UITypeEditor))]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public List<string> MyList {
    get {
    return myList;
    }
    set {
    myList = value;
    }
    }

    enter image description here

    关于.net - 是否有内置的 TypeConverter 或 UITypeEditor 来编辑字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163010/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com