当前位置: 首页 > 知识库问答 >
问题:

带Collection的自定义控件:出现Collection编辑器,但立即再次消失

何长恨
2023-03-14
public partial class gttDataSet : DataSet
{
    private dsTables _dsTables = new dsTables();

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor("System.ComponentModel.Design.CollectionEditor, System.Design", typeof(UITypeEditor))]
    public dsTables gttTables
    {
        get { return _dsTables; }
        set { _dsTables = value; }
    }
}

public class dsTables : BaseCollection
{
    // See `EDIT 2:` at the bottom of the question
    public object[] Items()
    {
        object[] test = List.ToArray();
        return test;
    }

    // See `EDIT 1:` at the bottom of the question
    public dsTable Item(int index)
    {
        return (dsTable)List[index];
    }

    public dsTable Add()
    {
        dsTable Result = new dsTable();
        this.List.Add(Result);
        return Result;
    }

    public void Remove(dsTable table)
    {
        List.Remove(table);
    }

    public int IndexOf(dsTable table)
    {
        return List.IndexOf(table);
    }

    public bool Contains(dsTable table)
    {
        return List.Contains(table);
    }
}

public class dsTable
{
    [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
    string SelectText { get; set; }

    [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
    string SelectTextForUpdate { get; set; }

    [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
    string DesignWhereText { get; set; }

    [Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
    string UserWhereText { get; set; }

    bool IsStoredProcedure { get; set; }

    bool RetrieveColumns { get;  }
}

编辑2:
添加了public object[]Items(),因为有几个网站告诉我需要集合编辑器来确定要处理的对象类型。
不幸的是,它没有解决我的问题

Edit3:
尝试将Items作为属性代替方法。但这也没有解决问题。

    public object[] Items
    {
        get
        {
            object[] test = List.ToArray();
            return test;
        }

        set 
        {
            _dsTables.Clear();
            foreach (object item in value)
            {
                _dsTables.Add((dsTable)item);
            }
        }
    }

共有1个答案

蒙胤
2023-03-14

最后发现了问题,原来我使用了错误的类型来继承

所以

public class dsTables : BaseCollection

一定是

public class dsTables : CollectionBase
 类似资料:
  • 我尝试用自定义控制器制作一个自定义组件。自定义组件已经显示在应用程序上,但我未能向其添加属性。 项目结构: null 布尔马尔科 完全错误: 原因:java.lang.nullPointerException:无法调用“javafx.scene.image.imageeview.setimage(javafx.scene.image.image)”,因为“controller.topbarbtn.

  • // 创建集合 collect([1, 2, 3]); // 返回该集合所代表的底层数组: $collection->all(); // 返回集合中所有项目的平均值: $collection->avg(); // 将集合拆成多个给定大小的较小集合: $collection->chunk(4); // 将多个数组组成的集合折成单一数组集合: $collection->collapse(); // 用

  • 问题内容: 为什么我通过以下方式得到不同的行为: 我正在与查看者一起工作,并且代码很复杂,并且我试图解释问题的“根源”。另一个有趣的事实是下一个… 问题答案: 此代码有效: 但这会带来问题: 我怀疑您的第一种方法的这种变化会带来相同的问题: 为什么?显然,您在某处使用了另一个对objectCollection的引用。在代码中的某个地方,另一个对象在说(例如): myCopyOfObjectColl

  • 问题内容: 我有个小问题。我需要使用自定义编辑器工具包将现有文件加载到。我有一个编辑器套件,一个带有某些扩展名的文件,我需要强制识别文件并使用我的编辑器套件。我只发现这是可能的,但无处可寻。 该工具包也基于HTML和文件。如果文件具有扩展名,则可以使用,但是当我将文件重命名为时,它将以纯文本格式打开。内容类型设置为,但是我无法注册该类型的编辑器套件,因为已经为该内容类型注册了另一个编辑器套件。 实

  • 采集 采集模块是可以批量采集目标网站内容入库 下载安装 采集流程 ★ 添加采集点,填写采集规则 ★ 采集网址,采集内容 ★ 发布内容到指定栏目 1、下载安装 从ZTBCMS 模块->模块->模块仓库 中找到采集模块,点击下载。 下载完成后,解压出来,并命名为“Collection”,然后将它copy至项目目录中。 接着在后台本地模块中进行安装。 2、采集流程 位置:内容>内容管理>采集管理 采集流

  • 几种常用的键值对类型的数据结构 Installing NPM 安装:npm install d3-collection, 还可以下载最新版,此外还可以直接从 d3js.org 以 单独的标准库 或作为 D3 4.0 的一部分引入,支持 AMD, CommonJS 以及 vanilla 环境, 使用标签引入会暴露 d3 全局变量: <script src="https://d3js.org/d3-c